2013-09-27 31 views
5

Czy możliwe jest zapytanie do mongodb o zwrócenie tablicy zgodnych wartości identyfikatora dokumentu bez powiązanych kluczy?mongodb: zwraca tablicę identyfikatorów dokumentów

Proszę rozważyć następującą „macierzystego” structur danych:

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

chciałbym kwerendy dla tablicy _ids matek, których dzieci mają nazwę „Joe”

Dla dostarczonych przykładowych danych, chciałbym następujące wyjście wrócił z Mongo:

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

wiem, że mogę zapytać o wyjście jak ta, która zawiera również klucze

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

Jednak muszę pchnąć powyżej tablicy do innego dokumentu z operacji aktualizacji jak ta:

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

Chciałbym uniknąć uporządkowanie struktury dokumentu, w przypadku gdy jest to możliwe, aby po prostu zwracać tablica zawierająca odpowiednie wartości za Mongo

Odpowiedz

15

powinno być możliwe

db.coll.distinct("_id", {"children.name": "joe"}) 
Powiązane problemy