2014-04-01 18 views
7

tôi có vị trí bộ sưu tập, mỗi bản ghi có các trường: placement_id, program_id, category, ... tôi cần tìm tất cả các vị trí có program_id = 3 hoặc 5 và chỉ trả về danh sách placement_id.mongodb cách trả về danh sách giá trị chỉ từ truy vấn tìm kiếm

khi tôi đã cố gắng lệnh này:

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

tôi đã nhận hồ sơ:

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

là có cách nào để trở chỉ:

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

{196, 197, 198 ...} không phải là JSON hợp lệ. –

Trả lời

13

Con trỏ từ find() sẽ tạo ra các tài liệu JSON, không có vấn đề gì. Nhưng bạn có thể trích xuất các giá trị bạn muốn. Một cái gì đó giống như có lẽ đây:

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

bạn có sử dụng bất kỳ chức năng java nào để triển khai bản đồ() tại đây không? – user468587

Các vấn đề liên quan