Musíte extrahovat pole „umístění“ ze vstupního pole a vložit je do $in
:
var locs = arr.map(function(x) { return x.location } );
db.collection.find({ "fieldx": { "$in": locs } })
Pro referenci zde přepíšu vaši otázku:
Mám sbírku, která obsahuje dokumenty, jako je tento:
{ "fieldx": "NY" }
{ "fieldx": "LA" }
{ "fieldx": "SF" }
Mám vstupní pole, které je definováno takto:
var arr = [
{ "name": "foo", "location": "NY"},
{ "name": "bar", "location": "LA"},
{ "name": "foobar", "location": "NZ"}
];
Nyní chci napsat dotaz, abych našel všechny dokumenty, které odpovídají poli „umístění“ v poli, které mám pro vstup.
Jak to mám udělat?
Zkoušel jsem:
db.collection.find({ "fieldx": { "$in": arr } })
Ale to se neshoduje.