我正在使用MongoDB和Morphia Object-2-Document映射庫。我的印象是Morphia使用「日誌」模式,因此使用事務來存儲/檢索數據 - 這意味着可靠性不應該成爲問題。MongoDB能否在數據庫中搞亂數據
我以前從未遇到過任何問題,但只有一個字段(對於所有文檔)具有這種無意義的值•••••。當我查看數據庫時,它看起來是空的。
這是Mongo對我的數據可能做的事情,還是我需要在別處尋找問題。
我正在使用MongoDB和Morphia Object-2-Document映射庫。我的印象是Morphia使用「日誌」模式,因此使用事務來存儲/檢索數據 - 這意味着可靠性不應該成爲問題。MongoDB能否在數據庫中搞亂數據
我以前從未遇到過任何問題,但只有一個字段(對於所有文檔)具有這種無意義的值•••••。當我查看數據庫時,它看起來是空的。
這是Mongo對我的數據可能做的事情,還是我需要在別處尋找問題。
數據庫用於存儲數據,而不是在插入時改變它們。所以這很可能不是mongoDB。
數據庫中的無意義值通常與字符編碼有關。檢查你的編碼是否與你的應用程序和mongoDB數據庫相同。
謝謝Boosty。然而,Mongo有可能「移動數據」,並且在事情發生時「事情可能會出錯」。我知道這是一個模糊的問題,如果無法回答,請不要擔心。無論如何,我真的希望它不是MongoDB,它運作得非常好。 – Ankur 2012-04-03 06:20:02
有些東西總是會出錯,當然,但是mongoDB已經是一個相當成熟的產品,並且已經得到了廣泛的測試。像內部移動數據那樣相對簡單的東西可能工作正常。 (我說的可能很多,因爲我不知道mongoDB的開發情況) – 2012-04-03 06:26:46
我是嗎啡使用「中國」模式,因此使用事務存儲的印象/檢索數據 - 這意味着可靠性不應該是一個問題
「雜誌」模式將參考Morphia修改MongoDB並等待MongoDB在返回之前將該數據寫入日誌。
MongoDB對單個文檔執行原子更新。但是,它不支持交易。因此,如果您保存一個Morphia對象,其中有三個不同的集合,則不會在這裏進行「啓動事務」或「回滾」。
我從來沒有過任何問題,但一個字段(所有文件)有這麼多廢話值...
這通常涉及二進制數據或不正確編碼字符串(取決於你所看到的非感測數據)。 MongoDB中的錯誤數據會引發異常,所以MongoDB顯然認爲它有正確的數據。
感謝您的支持。 「MongoDB中的錯誤數據會引發異常,所以MongoDB明確地相信它有正確的數據。」這將有助於記住。 – Ankur 2012-04-10 01:22:06
如果它有一個主要的bug,它會被修復(或者至少是衆所周知的)。可能是你搞亂了數據,而不是MongoDB。我不會想象它會在存儲數據後對數據進行任何類型的轉換。 – Corbin 2012-04-03 06:23:14
@Corbin :)好點。我放心了。 – Ankur 2012-04-03 06:24:32
我應該指出,儘管我對MongoDB的體驗包含大約30分鐘的「ooo這個很漂亮」的風格。據我所知,它可能實際上轉換數據。但是,正如Boosty所說,數據庫旨在存儲數據,而不是破壞數據。 (不完全是他說的,但一般的要訣:)) – Corbin 2012-04-03 06:25:40