Bạn cần trích xuất các trường "vị trí" từ mảng đầu vào của mình và cấp chúng vào $in
:
var locs = arr.map(function(x) { return x.location } );
db.collection.find({ "fieldx": { "$in": locs } })
Để tham khảo ở đây tôi sẽ viết lại câu hỏi của bạn cho bạn:
Tôi có một bộ sưu tập chứa các tài liệu như sau:
{ "fieldx": "NY" }
{ "fieldx": "LA" }
{ "fieldx": "SF" }
Những gì tôi có là một mảng đầu vào được định nghĩa như thế này:
var arr = [
{ "name": "foo", "location": "NY"},
{ "name": "bar", "location": "LA"},
{ "name": "foobar", "location": "NZ"}
];
Bây giờ tôi muốn viết một truy vấn để tìm tất cả các tài liệu khớp với trường "vị trí" trong mảng mà tôi có để nhập.
Làm cách nào để làm điều đó?
Tôi đã thử:
db.collection.find({ "fieldx": { "$in": arr } })
Nhưng điều đó không phù hợp.