MongoDB 3.0支持WiredTiger存儲引擎,提供可插拔存儲引擎API,新增SCRAM-SHA-1認證機制,改進explain
功能。mongodb
容許第三方爲MongoDB開發存儲引擎數據庫
首次引入WiredTiger存儲引擎,目前支持兩種存儲引擎:json
WiredTiger支持MonoDB的全部特徵,複製集和分片集羣的成員能夠採用不一樣的存儲引擎,須要client採用最新的官方驅動api
詳見strorage.wiredTiger
相關配置安全
提供文檔鎖(document-level)和數據壓縮,默認使用snappy庫壓縮集合數據,使用前綴壓縮的方式壓縮索引多線程
支持集合鎖(collection-level),老版本是數據庫鎖(database-level),粒度更細,支持更高併發併發
爲了支持多存儲引擎,MMAPv1部分配置選項作了改變:app
再也不支持動態校準的文檔分配,同時不建議使用paddingFactor
。
MMAPv1默認的文檔分配策略是2的N方,忽略usePowerOf2Sizes
集合配置,因此未配置noPadding
的集合均採用2的N方分配策略。若只有insert和in-place update,能夠設置noPadding。
當磁盤空間不足時,寫操做僅在須要磁盤空間分配失敗時報錯,不涉及磁盤分配的刪除操做或原地更新操做都可正常執行。高併發
支持最多50個節點,其中不超過7個投票節點,此特徵須要注意所使用的驅動是否支持。
v3.0以前最多支持12個節點,其中不超過7個投票節點。工具
複製集primary節點執行stepDown的過程作了如下改變:
secondaryCatchUpPeriodSecs
參數,若是在指定時間內secondary節點沒有遇上primary節點的狀態,那麼stepDown執行失敗, 複製集不會選舉新的primary作了如下改進:
sh.removeTagRange()
,讓帶標籤的分片集羣更容易管理,其做用相對於sh.addTagRange()
writeConcern
,用於配置chunk遷移操做,適用於balancer、moveChunk
命令、cleanupOrplaned
命令sh.status()
輸出結果包含balancer的狀態,詳見官方文檔作了如下改進:
爲查詢計劃和查詢執行提供粒度更細的自檢,改進查詢結果的輸出格式
改進日誌的可用性,根據組件、操做類型等進行分類,使得分析診斷更加方便,詳見官方文檔
全部工具(好比mongodump、mongorestore等)用Go重寫並利用一個單獨的項目維護
mongodump
和mongorestore
增長新的命令行參數--numParallelCollections
,支持多個集合併發導出/導入mongodump
新增命令行選項-excludeCollection
和--excludeCollectionsWithPrefix
,用於排除目標集合mongorestore
支持來自標準輸入的BSON數據,以前輸入僅支持來自BSON文件的數據mongostat
和mongotop
可以使用--json
命令行選項生成JSON格式的輸出mongoimport
mongorestore
mongofiles
可以使用--writeConcern
命令行選項配置寫選項mongofiles
可以使用--prefix
命令行選項配置GridFS前綴,自定義命名空間,所以一個數據庫下可存放多個GridFS命名空間dropDatabase
drop
dropIndexes
操做而自動中斷,上述命令在索引創建過程當中執行將報錯 a background operation is currentlxiay runningcreateIndexes
命令指定多個索引
$dateToString
用於將日期轉換成字符串$eq
表示相等條件