Debe extraer los campos de "ubicación" de su matriz de entrada y enviarlos a $in
:
var locs = arr.map(function(x) { return x.location } );
db.collection.find({ "fieldx": { "$in": locs } })
Como referencia aquí voy a volver a escribir su pregunta para usted:
Tengo una colección que contiene documentos como este:
{ "fieldx": "NY" }
{ "fieldx": "LA" }
{ "fieldx": "SF" }
Lo que tengo es una matriz de entrada que se define así:
var arr = [
{ "name": "foo", "location": "NY"},
{ "name": "bar", "location": "LA"},
{ "name": "foobar", "location": "NZ"}
];
Ahora quiero escribir una consulta para encontrar todos los documentos que coincidan con el campo "ubicación" en la matriz que tengo para la entrada.
¿Cómo hago eso?
He probado:
db.collection.find({ "fieldx": { "$in": arr } })
Pero eso no coincide.