2013-09-27 20 views
5

È possibile interrogare mongodb per restituire un array di valori ID documento corrispondenti, senza i relativi tasti?mongodb: restituisce un array di ID documento

Si prega di prendere in considerazione in seguito 'genitore' structur dati:

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

vorrei interrogare per una serie di _ids genitori i cui figli hanno il nome di "Joe"

Per i dati di esempio forniti, vorrei il seguente output restituito dal mongo:

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

so che posso interrogare un output come questo, che contiene anche i tasti

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

Tuttavia ho bisogno di spingere sopra array all'altro documento con un'operazione di aggiornamento simili:

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

Vorrei evitare sistemare la struttura del documento, in caso è possibile restituire solo un vettore contenente i valori appropriati utilizzando mongo

risposta

15

dovrebbe essere possibile

db.coll.distinct("_id", {"children.name": "joe"}) 
Problemi correlati