node.js,mongoose如何通过多个ID在对象数组中查找
我将Node.js与Mongoose模块一起使用,遇到了一个问题 我有一个模式模型,如下所示: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
_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"
}
]
}