アホイ!私は MongoDB で非常に面白い問題を抱えており、おそらくより一般的には JSON で問題を抱えています。基本的に、サブドキュメントに空のキーが含まれる MongoDB ドキュメントを誤って作成してしまいましたObjectID
。
{
"_id" : ObjectId("..."),
"stats" :
{
"violations" : 0,
"cost" : 170,
},
"parameters" :
{
"" : "../instances/comp/comp20.ectt",
"repetition" : 29,
"time" : 600000
},
"batch" : ObjectId("..."),
"system" : "Linux 3.5.0-27-generic",
"host" : "host3",
"date_started" : ISODate("2013-05-14T16:46:46.788Z"),
"date_stopped" : ISODate("2013-05-14T16:56:48.483Z"),
"copy" : false
}
もちろん、問題は次の行です。
"" : "../instances/comp/comp20.ectt"
フィールドの値を取り戻すことができないためです。次を使用してクエリを実行する場合:
db.experiments.find({"batch": ObjectId("...")}, { "parameters.": 1 })
私が得るのは、サブドキュメントの完全なコンテンツですparameters
。私の推測では.
、空のセレクターが続く場合、おそらく無視されます。JSON仕様 (15.12.*) から、空のキーが許可されているようです。それを解決する方法についてのアイデアはありますか?
それは既知の動作ですか?その用途はありますか?
更新フィールドに試してみまし$rename
たが、同じ理由でうまくいきません。で終わるキー.
は使用できません。
MongoDB イシュー トラッカーに提出されたイシューを更新します。
ありがとう、
トマソ