mongodb我的總結

mongodb 是一個文檔型,非關係型數據庫。

隨着你們對大數據的整合,分析。mongodb 的使用愈來愈多。主要體如今分佈式架構中。javascript

什麼是分佈式?

把數據分配在多臺服務器上的程序,稱爲分佈式。<br>java

常見的非關係型數據庫有哪些?

couchdb mongodb redis voldmort oracle cassandra hbase riak neo4j infogridmysql

關係型數據庫mysql數據結構對比非關係型數據庫mongodb數據結構?

關係型數據庫爲 數據庫,表, 行 redis

mongodb 數據結構爲 數據庫,集合,文檔sql

mongodb 有哪些特性?

事務支持 MongoDB 目前只支持單文檔事務,須要復瑣事務支持的場景暫時不適合mongodb

靈活的文檔模型 JSON 格式存儲最接近真實對象模型,對開發者友好,方便快速開發迭代數據庫

高可用複製集 知足數據高可靠、服務高可用的需求,運維簡單,故障自動切換json

可擴展分片集羣 海量數據存儲,服務能力水平擴展服務器

高性能 mmapv一、wiredtiger、mongorocks(rocksdb)、in-memory 等多引擎支持知足各類場景需求數據結構

強大的索引支持 地理位置索引可用於構建 各類 O2O 應用、文本索引解決搜索的需求、TTL索引解決歷史數據自動過時的需求

Gridfs 解決文件存儲的需求

aggregation & mapreduce :解決數據分析場景需求,用戶能夠本身寫查詢語句或腳本,將請求都分發到 MongoDB 上完成

在什麼業務場景下,須要mongodb?

mongodb 內部支持數據類型?

只有清楚數據類型才更方便使用

mongodb 中文檔已bson 結構存儲,bson (binary json)是一種相似json的二進制存儲格式,可是bson 有json沒有的一些數據類型。好比 Date 和 binData。

bson 中 value 類型包含: double string object array binData objectId bool date null regex javascript javascriptWithScope int timestamp long

經常使用命令集合?

建立數據庫 use testDB;

建立文檔 db.createCollection("account");

文檔的CURD

db.collection.find(); db.collection.insert(); db.collection.insertMany(); db.collection.update(); db.collection.remove(); db.collection.deleteMany();

支持的索引類型

單一索引 覆蓋索引 惟一索引,複合惟一索引 稀疏索引 特殊索引 固定集合 循環遊標 TTL鎖引 全文索引 地理索引

建立惟一索引

db.coll.ensureIndex({"email":1},{"unique":true}) 建立索引語法,字段,和boolean值,上面的例子,建立email索引同時,添加了惟一的約束。

什麼是TTL 索引?

Time to live ,生命週期索引。 能夠設置 文檔的生命週期 只能針對 日期類型字段上設置一個過時時間。秒爲單位,好比設置過時時間 3600 s。那麼mongo每秒檢查一次數據,發現時間大於3600s。就經過索引找到數據,對該條數據進行刪除。

db.log_events.createIndex( { "createTime": 1 }, ---字段名稱 { expireAfterSeconds: 60*60 } ) ---過時時間(單位秒)

建立一個固定集合

db.createCollection("capped_coll2", { capped : true, size : 1000, max : 5 } )

必須三個參數同時存在,否則雖然返回成功,但是 db.capped_coll2.isCapped(); 會發現不是固定集合。 Size 集合大小,單位字節,max 最多的條數。 當集合中數據滿之後。新插入的文檔會替換最老的文檔,適合作log或者排行榜展現數據。

如何分析索引

explain 關鍵字分析索引

db.products.explain("allPlansExecution").update( { quantity: { $lt: 1000}, category: "apparel" }, { $set: { reorder: true } } )

會輸出查詢分析器的執行狀況,方便分析將執行的語句

強制mongodb 使用指定索引 hint

db.products.explain("executionStats").find( { quantity: { $gt: 50 }, category: "apparel" } ).sort( { quantity: -1 } ).hint( { category: 1, quantity: -1 } )

將強制先使用 category索引,後使用quantity索引

相關文章
相關標籤/搜索