2014-02-23 57 views
1

這份文件是在我的DB(從蒙戈CL客戶端複製):MongoDB的雙重按鍵

{ 
    "_id" : ObjectId("52d14a3c10df410253000000"), 
    "content" : "U2FsdGVkX1/rU5DJTu/VYGCGxV1lHhhs1l2b3LZJXBQ=\n", 
    "content" : "U2FsdGVkX1/rU5DJTu/VYGCGxV1lHhhs1l2b3LZJXBQ=\n", 
    "created_at" : ISODate("2014-01-11T14:19:09.840Z"), 
    "updated_at" : ISODate("2014-02-23T16:38:48.283Z"), 
    "user_id" : ObjectId("51cd7edb25bbe84f67000001") 
} 

「內容」字段保存莫名其妙的兩倍。這怎麼可能發生,我將來如何防止它呢?

我在MongoDB 2.4.9中使用Mongoid 4.0.0.beta1。

+0

我會說這是不可能的,但在這裏。你是如何將這個文檔添加到集合中的? – JohnnyHK

+0

我不確定,但會嘗試儘可能快地持續複製和發佈配方。 – Jasper

回答

1

該問題必須在您的客戶端。本地mongo支持一個文檔中具有相同名稱的字段,但根據文檔,它永遠不會將重複字段添加到現有文檔。

BSON文檔可能有多個同名的字段。但是,大多數 MongoDB接口表示MongoDB具有不支持重複字段名稱的結構(例如 哈希表)。如果您需要 來處理具有相同名稱的多個字段的文檔,請參閱驅動程序的驅動程序文檔。

由內部MongoDB進程創建的一些文檔可能有 重複的字段,但是沒有任何MongoDB進程會將重複的 字段添加到現有的用戶文檔中。

希望它有幫助!