用MongoDB的,你可以店 JSON對象並獲取他們完全成形,所以你並不真的需要一個ORM層,你花更少的CPU時間轉換數據來來回回。 MongoDB後面的開發人員也使得數據庫水平擴展爲更高的優先級,並允許您運行任意的Javascript代碼來預處理數據庫端的數據(允許數據的map-reduce樣式過濾)。
但是,您因這些收益而失去一些:您無法加入記錄。其實,你存儲JSON結構只能做到通過在SQL連接,但在MongoDB中,你只能有一個結構,以您的數據,而在SQL可以查詢不同,讓您的數據在可替代的方式更容易爲代表,因此,如果您需要對你的數據庫做很多分析,MongoDB會更難。
在我看來,MongoDB中的查詢語言比SQL更「粗糙」,部分原因是它不太熟悉,部分原因是查詢功能「隨意」放在一起,部分是因爲它使JSON有效,部分是因爲從字面上看,有兩種方法可以做同樣的事情,有些方法不像其他方法那樣有用或經常格式化。還有的數組和子對象類型在SQL的簡單的基於行的設計複雜性的增加,所以,語法必須能夠處理查詢包含您定義的值一些陣列,包含的所有您定義的值僅包含您定義的值,幷包含您定義的值的無。相同的區別適用於對象鍵和它們的值,這使查詢語法更難掌握。 (雖然我可以看到邊緣情況的需要,但是查詢參數(它接受在每個數據記錄上運行的javascript函數並返回一個布爾值)是Siren歌曲,因爲您可以輕鬆定義您想要的對象是否返回,但它必須在每記錄在數據庫上運行,沒有索引可以使用。)
所以,這取決於你想要做什麼,但既然你說這是爲了Google文檔克隆,你可能不關心任何表示,但文件表示,本身,你可能只會根據文件ID,文件名或所有者的ID /名稱查詢,也沒有複雜的查詢。
然後,我會說能夠接受用戶正在編輯的文檔的JSON表示,並將其放入數據庫並讓它自動索引這些重要字段,值得學習新數據庫的代價。
感謝您抽出寶貴的時間回覆我。 – user1305989 2012-04-11 16:52:15