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

时间:2014-02-12 10:00:02

标签: node.js mongodb mongoose

我正在使用带有Mongoose模块的Node.js并遇到了问题。

我有一个Schema,这个模型看起来像这样

_id: '',
foo: '',
bar: '',
fb: [{
    id: ''
}]

如何找到集合中的所有对象以匹配fb [0] .id并传入一组ID?

我已尝试过(find()方法,后面有查询):

{'fb[0].id': {$in: friendsIDList}}

而且:

{'fb': {$in: [{id: friendsIDList}]} }

甚至这个

{'fb': {$in: {$in: friendsIDList}}}

为了更清楚,我有一个用户对象,它包含fb param中的FB数据,但它是一个只包含一个带数据的对象的数组。 现在我收到一个朋友ID列表,想要查询所有用户朋友。

对不起我的英语顺便说一句。

1 个答案:

答案 0 :(得分:1)

MongoDB有一个名为dot notation的内容,因此您可以使用'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"
        }
    ]
}