1

mongo のクエリで奇妙な問題が発生しました。次のような一連のレコードを挿入します。

{
  "_id" : "1f0aad54-85ef-446c-a02b-76bb0235e49c",
  "internalId" : new BinData(3, "VP0LH++FbESgK3a7AjXknA=="),
  "Data" : [
        ["otherId", "5e3b3293-ec93-469a-ba46-101a1feb1155"], 
        ["test", "test"], 
        ["test2", "test2"]
  ]
}

次に、簡単なクエリを実行します。

db.testCollection.find("Data.otherId" : "5e3b3293-ec93-469a-ba46-101a1feb1155")

otherId は .net guid.ToString() です - いくつかのランダムなものは明らかに..時々これらが返されます。そうでない場合もあります。db.find() はそれらを示していますが、明示的にクエリを実行すると、ランダムに 0 行が返されるようです。

これらがクエリで断続的に見つからない理由を説明できません.シャードされたクラスターと、すぐに使えるバニラのローカルインスタンスでこれをテストしました。

誰かがこれに遭遇しましたか?

4

2 に答える 2

1

間違ったセレクターを使用しています。あなたのデータが次の場合:

{
  "_id" : "1f0aad54-85ef-446c-a02b-76bb0235e49c",
  "internalId" : new BinData(3, "VP0LH++FbESgK3a7AjXknA=="),
  "Data" : {
        "otherId" "5e3b3293-ec93-469a-ba46-101a1feb1155", 
        "test": "test",
        "test2": "test2"
  }
}

そのセレクターは正しいでしょうが、配列があるため、このセレクターを使用する必要があります。

db.testCollection.find({"Data.0" : ["otherId","5e3b3293-ec93-469a-ba46-101a1feb1155"]})

(私はちょうどそれをテストしました)

于 2012-07-27T21:08:41.523 に答える