0
答案:它只是一個1.4.4的錯誤。升級到2.0已解決了這個問題。MongoDB點符號更新時
我在蒙戈下列對象:
{
_id: "foo",
bar: "baz",
list: {
42: { some: "prop" }
}
}
我想在「名單」一鍵43補充,所以我做了以下內容:
db.collection.update({
_id: "foo"
}, {
$set: {
"list.43": { some: "other prop" }
}
})
一切都很好,但帶有新子對象的43成爲列表屬性中唯一的關鍵字。爲什麼?爲什麼有42了?
預期結果:
{
_id: "foo",
bar: "baz",
list: {
42: { some: "prop" },
43: { some: "other prop" }
}
}
真實結果:
{
_id: "foo",
bar: "baz",
list: {
43: { some: "other prop" }
}
}
更新:事實上,問題是如何增加一個鑰匙插入一個嵌套的目的是在一個原子電話嗎?
你運行的是哪個版本的MongoDB?你的例子,在[你]期望的1.8x shell上運行,導致list成爲一個雙節點對象。是否有機會在更新中輸入錯誤或正在檢索錯誤的對象? – cjohn
謝謝,這是一個v.4.4.4的bug –