我将 Node.js 与 Mongoose 模块一起使用,但遇到了问题。
我有一个架构模型,如下所示:
_id: '',
foo: '',
bar: '',
fb: [{
id: ''
}]
如何查找集合中匹配 fb[0].id 并传入 ID 数组的所有对象?
我已经尝试过这个(带有以下查询的 find() 方法):
{'fb[0].id': {$in: friendsIDList}}
还有这个:
{'fb': {$in: [{id: friendsIDList}]} }
甚至这个
{'fb': {$in: {$in: friendsIDList}}}
更清楚地说,我有一个用户对象,其中包含 fb 参数中的 FB 数据,但它是一个仅包含一个带有数据的对象的数组。现在我收到一个好友ID列表,想查询所有用户好友。
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"
}
]
}
我是一名优秀的程序员,十分优秀!