Devi estrarre i campi "posizione" dal tuo array di input e inviarli a $in
:
var locs = arr.map(function(x) { return x.location } );
db.collection.find({ "fieldx": { "$in": locs } })
Per riferimento qui riscrivo la tua domanda per te:
Ho una collezione che contiene documenti come questo:
{ "fieldx": "NY" }
{ "fieldx": "LA" }
{ "fieldx": "SF" }
Quello che ho è un array di input definito in questo modo:
var arr = [
{ "name": "foo", "location": "NY"},
{ "name": "bar", "location": "LA"},
{ "name": "foobar", "location": "NZ"}
];
Ora voglio scrivere una query per trovare tutti i documenti che corrispondono al campo "posizione" nell'array che ho per l'input.
Come faccio a farlo?
Ho provato:
db.collection.find({ "fieldx": { "$in": arr } })
Ma questo non corrisponde.