Musisz wyodrębnić pola „lokalizacja” z tablicy wejściowej i podać je do $in
:
var locs = arr.map(function(x) { return x.location } );
db.collection.find({ "fieldx": { "$in": locs } })
W celach informacyjnych przepiszę Twoje pytanie:
Mam kolekcję zawierającą takie dokumenty:
{ "fieldx": "NY" }
{ "fieldx": "LA" }
{ "fieldx": "SF" }
Mam tablicę wejściową zdefiniowaną w ten sposób:
var arr = [
{ "name": "foo", "location": "NY"},
{ "name": "bar", "location": "LA"},
{ "name": "foobar", "location": "NZ"}
];
Teraz chcę napisać zapytanie, aby znaleźć wszystkie dokumenty pasujące do pola „lokalizacja” w tablicy, którą mam do wprowadzenia.
Jak mam to zrobić?
Próbowałem:
db.collection.find({ "fieldx": { "$in": arr } })
Ale to nie pasuje.