mongodb でこのクエリを実行するにはどうすればよいですか?
質問
私のドキュメントには配列フィールドがあります キー
キー1 そして キー2 2つの配列です
すべてのドキュメントが欲しいのですが、 キー に任意の値が含まれています キー1 そして の任意の値 キー2
解決
このクエリを表現する優れた方法はまだ (1.1.2 の時点では) ありません。リストに質問するか、機能リクエストを提出していただければ、何かを準備することができます。
現時点での最善の策は、おそらく $in クエリを使用して作業の半分を実行することです。
db.test.find({keys: {$in: Keys1}})
これは、Keys2 部分を実行できる $where と組み合わせて実行できます (ただし、インデックスは利用しません。そのため、できる限り通常のクエリ構文で実行するのが良いのです)。これは次のようになります。
db.test.find({keys: {$in: Keys1}, $where: "for (i in this.keys) { for (j in Keys2) { if (this.keys[i] == Keys2[j]) return true;}} return false;"})
mongodb 2.6 以降の最新バージョンでは、$and 演算子でこれを行うことができます。
db.test.find({$and:[{keys: {$in: Keys1}},{keys: {$in: Keys2}}]})
所属していません StackOverflow