入力配列から「場所」フィールドを抽出し、それらを $in
にフィードする必要があります :
var locs = arr.map(function(x) { return x.location } );
db.collection.find({ "fieldx": { "$in": locs } })
参考までに、質問を書き直します:
次のようなドキュメントを含むコレクションがあります:
{ "fieldx": "NY" }
{ "fieldx": "LA" }
{ "fieldx": "SF" }
私が持っているのは、次のように定義された入力配列です:
var arr = [
{ "name": "foo", "location": "NY"},
{ "name": "bar", "location": "LA"},
{ "name": "foobar", "location": "NZ"}
];
次に、入力用の配列の「場所」フィールドに一致するすべてのドキュメントを検索するクエリを作成します。
どうすればよいですか?
試しました:
db.collection.find({ "fieldx": { "$in": arr } })
しかし、それは一致しません。