2015-01-22 7 views
0

Я пытаюсь запросить идентификатор встроенного массива документов без каких-либо успехов. Было бы замечательно знать, как запрашивать массив встроенных документов, используя его «id».Весенний запрос встроенный документ массивов

Ниже моя коллекция названа зр

{ "_id":ObjectId("54bd949a44ae90d7e1473581"),"orgName":"org name","towns":[{"_id":ObjectId("54bd7829104d630153f66082"),"status":"SUBMITTED","contact":{"name":"con name","email":"[email protected]","phone":"34567890123"}}]} 
{ "_id":ObjectId("54bd94ac44ae90d7e1473582"),"orgName":"sp3 org name","towns":[{"_id":ObjectId("54bd7829104d630153f66082"),"status":"SUBMITTED","contact":{"name":"sp3 contact name","email":"[email protected]","phone":"45678903"}}]} 
{ "_id":ObjectId("54bea67c44ae36e60e584d46"),"orgName":"org name","towns":[{"_id":ObjectId("54bd7829104d630153f66082"),"status":"SUBMITTED","contact":{"name":"con name","email":"[email protected]","phone":"34567890123"}}]} 

Нижеприведенные запросы возвращают нуль. Я ожидаю, что он вернет все документы.

db.sp.find({'towns.id':{$in:['54bd7829104d630153f66082']}}) 
db.sp.find({'towns.id':{$in:[ObjectId("54bd7829104d630153f66082")]}}) 

Ниже запрос возвращает все три документа

db.sp.find({'towns.status':{$in:['SUBMITTED']}}) 
+2

Я думаю, что это должно быть 'citys._id', вы отсутствуете, подчеркиваете – styvane

+0

@Styvane Спасибо за ответ. Я понял это после публикации. Если вы ответите, я приму ответ. – Srik

ответ

0

Как я уже сказал в своем комментарии ваши отсутствует подчеркивание.

db.sp.find({'towns._id':ObjectId("54bd7829104d630153f66082")}) 
       ^

Также вам не нужен оператор $in здесь.

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