我知道這是一個很大的問題,它不是一個答案,也不是答案,但我們開發Web應用程序並正在研究如何使用MongoDB來實現我們的持久性解決方案。將MongoDB與NoRM結合用於對象存儲。從SQL服務器遷移到MongoDB的原因
我想問的是您從SQL切換到mongo時遇到的問題?什麼時候mongo根本就不是正確的解決方案,並且mongodb的優勢足以將開發從SQL中移走?
我知道這是一個很大的問題,它不是一個答案,也不是答案,但我們開發Web應用程序並正在研究如何使用MongoDB來實現我們的持久性解決方案。將MongoDB與NoRM結合用於對象存儲。從SQL服務器遷移到MongoDB的原因
我想問的是您從SQL切換到mongo時遇到的問題?什麼時候mongo根本就不是正確的解決方案,並且mongodb的優勢足以將開發從SQL中移走?
在我看來,選擇存儲後端時,數據的格式應該是主要關心的問題。你有關係性質的數據嗎?如果是這樣,是否可以,並且在文檔中建模數據是一個好主意?數據建模在文檔數據庫中與在關係數據庫中一樣重要,它的做法不同。你有多少種類型的物體,它們有什麼關係? Mongodb中的DBrefs可以做的伎倆,或者你會錯過外鍵太多,這將是痛苦的?數據的訪問模式是什麼?你只是提取一個字段值過濾的數據類型,或者你有錯綜複雜的提取模式?
您是否需要ACID事務完整性?該域對數據執行了很多限制嗎?您是否需要文檔數據庫的可伸縮性因素還是僅僅是一件「酷」的事情?
什麼是您的一致性和數據完整性要求?一些NoSQL解決方案和MongoDB在寫入一致性方面相當寬鬆,以獲得性能。 NoSQL沒有統一的格局和其他產品,例如CouchDB在這個部門有其他特點。有些也是可調的。
這些都是應該進入存儲選擇的問題。
幾點體會
我幾天來一直在嘲笑它。這就是我能說一下:
FOR:
反對:
一兩件事我注意到這是一個從教程丟失: 初始化你的對象裏面你的清單,否則在試圖對.save(yourobj),它會拋出一個錯誤。最安全的做法是在你的類中編寫一個構造函數,確保你的對象中沒有任何NULL對象。這樣,如果你忘記了某些東西,你將不會得到一個錯誤。
+1。我一直在我的POCO列表中掙扎一段時間,謝謝讓我知道它應該如何工作。沒想到在這裏找到答案:) – Mickel 2010-12-26 19:22:08
我寫了一堆MongoDB的ASP.NET提供程序,你可以使用:https://github.com/freshlogic/MongoDB.Web – 2011-09-11 15:21:18
在這個Getting started with NoSQL中,您可能會發現使用NoSQL數據庫(包括MongoDB)的一些優缺點。一個簡短的總結將是:一個不同的數據模型(想象一下,如果需要從對象模型到「這個新模型」的映射,它是否會運行良好),一個不同的查詢模型(儘管與其他模型相比,MongoDB查詢具有相當的能力) ,沒有交易(儘管你有一些原子操作)。
無論如何,從我的角度來看,最重要的變化是數據模型以及您使用這種新方法設計應用程序的方式。
利弊
利弊
您的里程可能會有所不同,但是這是一個快速圖我放在一起進行比較更新多個「錶行」(MongoDB中的非層級扁平文件)的速度有和沒有索引給我們一個想法,它將如何擴展我們的應用程序。
此圖來自哪裏? – BanksySan 2016-02-01 17:13:41
我個人在我的開發機器上進行的實驗......前一段時間,現在已被授予。 – GroovyCakes 2016-02-23 23:06:16
你可以做存儲過程與MongoDb和人們使用此功能:http://www.mattinsler.com/why-and-how-i-replaced-amazon-sqs-with-mongodb/ – TTT 2010-07-20 09:04:11
@TTT。你是對的。現在編輯出來。 – 2010-07-20 09:11:57