U moet de "locatie"-velden uit uw invoerarray extraheren en invoeren in $in
:
var locs = arr.map(function(x) { return x.location } );
db.collection.find({ "fieldx": { "$in": locs } })
Ter referentie hier ga ik uw vraag voor u herschrijven:
Ik heb een verzameling die documenten als deze bevat:
{ "fieldx": "NY" }
{ "fieldx": "LA" }
{ "fieldx": "SF" }
Wat ik heb is een invoerarray die als volgt is gedefinieerd:
var arr = [
{ "name": "foo", "location": "NY"},
{ "name": "bar", "location": "LA"},
{ "name": "foobar", "location": "NZ"}
];
Nu wil ik een query schrijven om alle documenten te vinden die overeenkomen met het veld "locatie" in de array die ik voor invoer heb.
Hoe doe ik dat?
Ik heb geprobeerd:
db.collection.find({ "fieldx": { "$in": arr } })
Maar dat komt niet overeen.