次のような構造のテスト ドキュメントがいくつかあります。
{
"foo" : {
"bar" : [
{
"a" : [
"1",
"4"
]
},
{
"a" : [
"1",
"7"
]
}
]
}
}
ここで、"a" 配列の少なくとも 1 つに文字列 "1"、"4"、および "7" が含まれているこれらすべてのドキュメントを取得しようとしています。(注: このサンプル ドキュメントが見つからないことはわかっています!)
今、私は次のようにデータベースを照会します:
db.test.find({"foo.bar.a": {$all: ["1","4","7"]}})
私の意見では、ドキュメントが見つからないことを教えてくれるはずですが、最初の "a" 配列に "1" と "4" が含まれ、2 番目の "a" 配列に "7" が含まれているため、例のドキュメントが見つかります。 .
これは $all 演算子のバグですか、それともクエリが間違っているだけですか?