ドキュメントに配列フィールドKeysがあります
Keys1とKeys2は 2 つの配列です
KeysにKeys1の任意の値とKeys2 の任意の値が含まれるすべてのドキュメントが必要です
このクエリを表現する優れた方法はまだありません (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}}]})