我正在使用带有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列表,想要查询所有用户朋友。
对不起我的英语顺便说一句。
答案 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"
}
]
}