Ahoy!我對MongoDB有一個非常有趣的問題,並且可能更一般地用JSON。基本上,我無意中創建了一些MongoDB文檔,其子文檔包含一個空鍵,例如(我剝ObjectID
s到使代碼看起來更漂亮):MongoDB:如何選擇空鍵子文檔?
{
"_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
這個字段,但是那樣不行,出於同樣的原因。以.
結尾的密鑰不被允許。
更新已申請issue關於MongoDB問題跟蹤器。
感謝,
托馬索
好吧,我只是想在提交問題之前確定。 – tunnuz
好的。在此發佈問題鏈接,以便人們在遇到同樣的問題時可以投票。謝謝! –