2013-09-27 2 views
5

Можно ли запросить MongoDB вернуть массив соответствующих значений идентификаторов документа без соответствующих ключей?MongoDB: возвращает массив идентификаторов документов

Пожалуйста, обратите внимание следующего родительских Структур данных:

{ 
    "_id": ObjectId("52448e4697fb2b775cb5c3a7"), 
    "name": "Peter", 
    "children": [ 
    { 
     "name": "joe" 
    } 
    ] 
}, 
{ 
    "_id": ObjectId("52448e4697fb2b775cb5c3b6"), 
    "name": "Marry", 
    "children": [ 
    { 
     "name": "joe" 
    } 
    ] 
} 

Я хотел бы, чтобы запросить массив родительских _ids, чьи дети имеют название «Джо»

Для предоставленных образцов данных, я хотел бы следующий вывод вернулся из Монго:

[ObjectId("52448e4697fb2b775cb5c3a7"), ObjectId("52448e4697fb2b775cb5c3b6")] 

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

[{"_id": ObjectId("52448e4697fb2b775cb5c3a7")}, {"_id": ObjectId("52448e4697fb2b775cb5c3b6")}] 

Однако мне нужно нажать выше массива в другой документ с операцией обновления, как это:

db.statistic.update({"date": today}, {$push: {"children": [ObjectId("52448e4697fb2b775cb5c3a7"), ObjectId("52448e4697fb2b775cb5c3b6")]}}, true, false) 

Я хотел бы избежать сортировки структуры документа, в случае, можно просто возвращать массив, содержащий соответствующие значения, используя Монго

ответ

15

Это должно быть возможным благодаря

db.coll.distinct("_id", {"children.name": "joe"}) 
Смежные вопросы