天天看點

mongodb

1、MongoDB介紹

MongoDB作為非關系型資料庫的典型,廣泛應用于分布式檔案存儲,成為NoSQL資料庫中比較熱門的一種。

其複制集和分片的功能,可以作為WEB應用提高可擴充性的高性能資料存儲解決方案之一。

在介紹MongoDB之前,首先介紹一下NoSQL,NoSQL泛指非關系型資料庫,NoSQL通常用于超大規模資料的存儲。(例如谷歌或FaceBook每天為他們的使用者收集萬億比特的資料)。這些類型的資料存儲不需要固定的模式,無需多餘操作就可以橫向擴充。

MongoDB作為NoSQL的典型代表,因其提供了一個面向文檔存儲以及操作起來比較容易等特點逐漸被大部分人所關注。

1.1、MongoDB主要特點

1.1.1、優點

面向文檔存儲,不需要嚴格的結構。

高性能、易部署、易使用,存儲資料非常友善。

非結構化,基于文檔。

具有強大的主流開發語言支援,如c#,java,PHP,Python等。

擴充友善,分片與複制集能夠友善地實作備援容災與負載均衡。

1.1.2、缺點

吃記憶體,通常會做記憶體限制。

不支援事務操作,對于事務要求嚴格的系統不建議使用。

1.2、MongoDB相關概念:

1.2.1、資料庫(database)

一個MongoDB中可以建立多個資料庫。

MongoDB的預設資料庫為test,該資料庫存儲在data目錄中。

MongoDB的單個執行個體可以容納多個獨立的資料庫,每一個都有自己的集合和權限,不同的資料庫也放置在不同的檔案中。

show dbs指令可以顯示所有資料庫的清單,若開啟使用者認證,則該操作需要先擷取相應的權限。

db指令可顯示目前所連接配接的資料庫。

use dbname指令可實作切換資料庫,同時也可用于新增資料庫,dbname為資料庫名。

1.2.2、集合(collections)

集合就是 MongoDB 的文檔組,類似于 RDBMS (關系資料庫管理系統:Relational Database Management

System)中的表格。

集合存在于資料庫中,集合沒有固定的結構,這意味着你在對集合可以插入不同格式和類型的資料,但通常情況下我們插入集合的資料都會有一定的關聯性。

show collections指令可顯示該資料庫中所有的集合。

1.2.3、文檔(document)

文檔是一個鍵值(key-value)對(即BSON)。類似于RDBMS表中的資料,MongoDB 的文檔不需要設定相同的字段,并且相同的字段不需要相同的資料類型,這與關系型資料庫有很大的差別,也是 MongoDB 非常突出的特點。

RDBMS 與mongodb對應的術語關系:

1.3、MongoDB基本操作

使用公司平台提供的一鍵安裝包安裝完成後,預設端口是27017。

安裝完成後開啟mongod服務:service mongod start

關閉mongod服務:service mongod stop mongod服務已加入開機啟動中,

首次安裝需要手動開啟(service mongod start),重新開機伺服器後會自動開啟。

檢視mongod程序是否已開啟:ps -ef | grep mongod

開啟mongod之後才能進入mongo 進入mongo: /usr/local/mongodb/bin/mongo

該方法預設進入本地端口為27017的mongod /usr/local/mongodb/bin/mongo –host

192.168.xxx.xxx –port xxxx 可指定連接配接的主機ip和端口