文檔是Mongodb中的核心概念。文檔就是鍵值對的有序集合。相似於ruby中的hash,python中的dict或是javascript中的對象。javascript
能夠只有一個鍵值對,也能夠設置對個鍵值對。java
"greeting": "Hello, World"}
{"greeting": "Hello, World", "foo": 3}
文檔中的鍵/值是有序的 {"x": 1, "y": 2}與{"y": 2, "x": 1} 是不一樣的。在某些特殊狀況下,字段順序變得很是重要。python
簡單的來講:集合就是一組文檔,若是將Mongodb中的一個文檔比喻爲關係型數據庫中的一行,那麼一個集合就至關於一張表正則表達式
集合使用名稱進行表示。集合名能夠是知足下列條件的任意UTF8字符串mongodb
在Mongodb中,多個文檔組成集合,而多個集合能夠組成數據庫。每一個數據庫擁有0個或者多個集合,每一個數據庫都有獨立的權限,即使是在磁盤上,不一樣的數據庫也防止在不一樣的文件中。按照經驗咱們把一個應用程序的全部數據都存儲在一個數據庫中。要想在MongoDB服務器上存放多個應用程序或者用戶程序就須要使用不一樣的數據庫。shell
有一些數據庫是保留的admin數據庫
把數據庫名添加到集合名前,獲得集合的徹底限定名,即命名空間。若是要使用cms數據庫中的blog.post集合那麼這個集合的命名空間就是cms.blog.post。命名空間的長度不能超過121字節,且在實際使用中應小於100字符。數組
mongo 命令進入mongodb shell 在此shell 中能夠執行 JavaScript代碼ruby
{"x": {"foo": "bar"}}
服務器
還有些不那麼經常使用可是有可能用獲得的類型:
shell 能夠鏈接到本地的mongod實例,並且能夠經過該shell鏈接到任何MongoDB實例
$ mongo some-host:30000/myDB
MongoDB shell version: 2.4.0
connecting to: some-host:30000/myDB
>
如今咱們就鏈接到了some-host:30000上的myDB數據庫.
也能夠經過--nodb 不鏈接任何數據庫進入shell
$ » mongo --nodb apple@apple-Pro MongoDB shell version v4.0.3 >
啓動後能夠在須要時運行new Mongo命令就能夠鏈接MongoDB
~/Documents/demo/go_demo » mongo --nodb apple@apple-Pro MongoDB shell version v4.0.3 > conn = new Mongo("some-host:30000") > db = conn.getDB("myDb") myDb