2014-04-01 3 views
7

Ich habe eine Sammelplatzierung, jeder Datensatz hat Felder: Placement_ID, Programm_ID, Kategorie, ... Ich muss alle Placements finden, was program_id = 3 oder 5 und nur hat gebe eine Liste von Placement_ID zurück.mongodb Wie man eine Werteliste nur von der Suchabfrage zurückgibt

, wenn ich diesen Befehl versucht:

db.placements.find({program_id:{$in: [3, 5]}}, {placement_id:1, _id:0}) 

i Aufzeichnungen bekam:

{ "placement_id" : 196 } 
{ "placement_id" : 197 } 
{ "placement_id" : 198 } 
... 

ist es eine Möglichkeit, nur zurück:

[196, 197, 198...] 
+0

{196, 197, 198 ...} ist nicht gültig JSON. –

Antwort

13

Der Cursor von find() wird sich JSON-Dokumente ausgeben, egal was. Aber Sie können die gewünschten Werte extrahieren. So etwas wie diese vielleicht:

get_placement_id = function(doc) { return doc.placement_id; } 

db.placements.find({program_id:{$in: [3, 5]}}, {placement_id:1, _id:0}).map(get_placement_id) 

==>

[ 196, 197, 198, ... ] 
+0

Haben Sie eine Java-Funktion, um die map() hier zu implementieren? – user468587

Verwandte Themen