node.js,mongoose如何通过多个ID在对象数组中查找

node.js,mongoose如何通过多个ID在对象数组中查找,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我将Node.js与Mongoose模块一起使用,遇到了一个问题 我有一个模式模型,如下所示: _id: '', foo: '', bar: '', fb: [{ id: '' }] 如何查找集合中与fb[0].id匹配的所有对象,并传入一个id数组 我尝试了以下查询(find()方法): 这是: {'fb': {$in: [{id: friendsIDList}]} } 甚至这个 {'fb': {$in: {$in: friendsIDList}}} 更清楚地说,我有一个user

我将Node.js与Mongoose模块一起使用,遇到了一个问题

我有一个模式模型,如下所示:

_id: '',
foo: '',
bar: '',
fb: [{
    id: ''
}]
如何查找集合中与fb[0].id匹配的所有对象,并传入一个id数组

我尝试了以下查询(find()方法):

这是:

{'fb': {$in: [{id: friendsIDList}]} }
甚至这个

{'fb': {$in: {$in: friendsIDList}}}
更清楚地说,我有一个users对象,它在FB param中包含他们的FB数据,但它是一个数组,只包含一个包含数据的对象。
现在我收到一个朋友id列表,希望查询所有用户朋友。

MongoDB有一个名为的东西,因此您可以使用
'foo.0.id':'id'
进行查询

测试如下:

> db.users.insert({foo: 'foo', bar: 'bar', fb: [ { id: '456' } ]})
> db.users.find({'fb.0.id': '456'}).pretty()
{
    "_id" : ObjectId("52fb695e403fb143985459dc"),
    "foo" : "foo",
    "bar" : "bar",
    "fb" : [
        {
            "id" : "456"
        }
    ]
}

fb.0.id
0
的意义是什么?fb属性数组中第一个对象的id属性。与执行fb[0]类似。在大多数编程语言中,id=456
> db.users.insert({foo: 'foo', bar: 'bar', fb: [ { id: '456' } ]})
> db.users.find({'fb.0.id': '456'}).pretty()
{
    "_id" : ObjectId("52fb695e403fb143985459dc"),
    "foo" : "foo",
    "bar" : "bar",
    "fb" : [
        {
            "id" : "456"
        }
    ]
}