2014-04-01 14 views
7

Mam miejsca docelowe kolekcji, każdy rekord ma pola: placement_id, program_id, kategorię, ... muszę znaleźć wszystkie miejsca docelowe, które ma program_id = 3 lub 5 i tylko zwróć listę identyfikatora miejsca docelowego.mongodb jak zwrócić listę wartości tylko z zapytania wyszukiwania

gdy próbowałem tego polecenia:

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

i got rekordy:

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

jest jakiś sposób, aby powrócić po prostu:

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

{196, 197, 198 ...} nie jest prawidłowy JSON. –

Odpowiedz

13

Kursor z find() zamierza Wydaj dokumenty JSON, bez względu na wszystko. Ale można wyodrębnić żądane wartości. Coś takiego może:

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

do ciebie, czy istnieje tutaj funkcja java do implementacji mapy()? – user468587

Powiązane problemy