2014-01-16 2 views
0

У меня есть такая модель:Найти в массиве ссылок MongoDB

MyCollection 
{ 
    ... 
    groups : [{ type: Schema.Types.ObjectId, ref: 'Group' }], 
    ... 
} 

Теперь, как я могу найти все документы, которые имеют группу с известной _id? Я попытался

MyCollection.find({ 
       'groups' : { 
        $elemMatch : { 
        '$ref' : 'Group', 
        '$id' : myid 
        } 
       } 
      }).exec(cb); 

, но он не работает. Я очень расстроен этим вопросом.

Образец документа:

{ _id: 52d7dd87f3f1e72c7c000005, 
    groups: [ { _id: 52d02565360c206933000013, name: 'groupname' } ], 
    date: Thu Jan 16 2014 10:15:00 GMT+0200 (EET), 
    ... 
} 

Другая попытка:

> 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 

К сожалению, я сделал ошибку, этот запрос работает!

+0

Что такое "Предмет"? –

+0

Я редактировал, это было название модели, я забыл изменить ее – zaynetro

+0

Можете ли вы предоставить образец документа из MyCollection? –

ответ

1

работает для меня (с использованием Монго оболочки):

> 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" } ] } 

Возможно, у вас есть опечатка.

+0

Я поставил результаты этих команд на вопрос – zaynetro

Смежные вопросы