[英]Find in array of references mongodb
I have this kind of model: 我有这种模型:
MyCollection
{
...
groups : [{ type: Schema.Types.ObjectId, ref: 'Group' }],
...
}
Now how can I find all documents which have a group with known _id? 现在,如何找到具有已知_id组的所有文档? I tried 我试过了
MyCollection.find({
'groups' : {
$elemMatch : {
'$ref' : 'Group',
'$id' : myid
}
}
}).exec(cb);
but it doesn't work. 但这不起作用。 I am really frustrated with this question. 我对这个问题感到非常沮丧。
Sample document: 样本文件:
{ _id: 52d7dd87f3f1e72c7c000005,
groups: [ { _id: 52d02565360c206933000013, name: 'groupname' } ],
date: Thu Jan 16 2014 10:15:00 GMT+0200 (EET),
...
}
Another try: 另一种尝试:
> db.groups.find({ "name" : "NINFOS13"})
{ "_id" : ObjectId("52d8fad69c7817b52a000012"), "createdAt" : ISODate("2014-01- 17T09:41:42.365Z"), "name" : "NINFOS13", "__v" : 0 }
> db.subjects.insert({groups : [ { _id : ObjectId("52d8fad69c7817b52a000012"), name : "NINFOS13"}]})
> db.subjects.find()
{ "_id" : ObjectId("52d8fb7c1c4493a980630c68"), "groups" : [ { "_id" : ObjectId("52d8fad69c7817b52a000012"), "name" : "NINFOS13" } ] }
> db.subjects.find({"groups._id" : ObjectId("52d8fb7c1c4493a980630c68")}).count()
0
Sorry, I made a mistake this query works! 抱歉,我在查询中出错了!
Works for me (using mongo shell): 为我工作(使用mongo shell):
> db.stack.insert({groups: [ { _id: ObjectId("52d02565360c206933000013"), name: "groupname" } ]});
> db.stack.find()
{ "_id" : ObjectId("52d8924b5c90ea648f2a4664"), "groups" : [ { "_id" : ObjectId("52d02565360c206933000013"), "name" : "groupname" } ] }
> db.stack.find({"groups._id": ObjectId("52d02565360c206933000013")});
{ "_id" : ObjectId("52d8924b5c90ea648f2a4664"), "groups" : [ { "_id" : ObjectId("52d02565360c206933000013"), "name" : "groupname" } ] }
Perhaps you have a typo. 也许您有错字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.