MongoDB簡介與基本查詢操作命令

MongoDB是一個非關係型的數據庫,以鍵值對的形式儲存,其中鍵值對可以嵌套下去。因此相對傳統的關係型數據庫來說,MongoDB更加的靈活,當然缺點就是由於非結構化的形式導致解析的時候相對複雜。另外,MongoDB已經支持了很多開源的生態,如可以集成Hadoop生態環境等,在擴展性上也有很好的支持。

 

MongoDB三大基本概念:

1. 文檔(Document)——相當於關係型數據庫中的行

文檔是以key-value(鍵值對)爲基本存在形式的有序集,它是以BSON(Binary JavaScript Object Notation)的形式表現,這是一種類似於JSON的格式。文檔的形式可以是多種多樣的,key可以不同,但是key中不能有空字符以及不能是.(一點)和$(美元符號),value也可以不同,甚至value可以內嵌另外一個文檔,這種內嵌性極大地提供了靈活性和豐富了文檔的多樣性。

2. 集合(Collection)——相當於關係型數據庫中的表

集合就是一組文檔,它是動態模式的,也就是說在一個集合中,文檔類型可以是多種多樣的。什麼是多種多樣的?比如它並不像關係型數據庫一樣,字段名要一致,而是無拘無束,也就是說什麼類型,什麼形式的文檔都可以放進去同一個集合中(^_^點都德)。但是,儘管MongoDB並不強制要求一個集合放一類的文檔,但是畢竟不同類型的文檔放在同一集合中會導致數據管理混亂,更重要的是會影響性能,在利用索引進行查詢的時候,同一類型的文檔往往能更有效地查詢,這些無形問題使得我們自覺地把不同類型的文檔放到不同的集合中。另外,集合命名的時候不能有空字符,不能用"system."開頭,以及有$符號,按照慣例一般會有子集合來組織數據。比如說一個博客可以有發表的文章或者作者兩種文檔數據,這樣這種數據可以分別以blog.posts和blog.authors來命名集合。

3. 數據庫(Database)——相當於關係型數據庫中的數據庫

數據庫是存放集合的地方,每個數據庫有獨立的權限,不同的數據庫放置在不同的文件中。按照經驗,一般一個數據庫對應一個應用的所有數據。

 

Mongo Shell

MongoDB通常作爲一個服務器來運行,同時其自帶一個以JavaScript爲基礎的shell,我們姑且稱之爲Mongo Shell。Mongo Shell 中可以使用JavaScript的標準庫。另外,它還帶有其他擴展的功能,可以在裏面使用類似SQL的數據操作功能。

 

Mongo Shell有四大基本操作:創建、讀取、更新和刪除

查詢某個字段爲某個值的文檔:db.getCollection("collection").find({"key":value})
查詢某個文檔前N行:db.getCollection("collection").find({}).sort({"key":-1}).limit(N)
查詢某個字段大於某個值的文檔:db.getCollection("collection").find({"key":{"${gt}":value}})
查詢符合條件的文檔數:db.getCollection("collection").find({"key":value}).count()

 

參考文獻:

MongoDB: The Definitive Guide 2nd Edition, O'Reilly, 2014
http://blog.csdn.net/hzrandd/article/details/49003387

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章