標籤:shel 效率 val 對比 alt size 類型 關聯式資料庫 world
下面是mongodb的一些基本概念:
- 文檔是MongoDB中資料的基本單元,類似關聯式資料庫中的行。
- 集合,是儲存文檔的容器,類似關聯式資料庫中的表。
- MongoDB的單個執行個體容納多個資料庫,每個資料庫都有自己的集合和許可權。
- 每一個文檔都有一個特殊的“_id”,它在文檔所處的集合中是唯一的。
為了易於理解,咱們把MongoDB中的概念與關聯式資料庫對比一下:
一、文檔
文檔是mongodb的核心概念。多個索引值有序的放置在一起便是文檔。簡單的例子:
1 {"greeting":"Hello World","foo":15} 2 {"foo":15,"greeting":"Hello World"}3 {"foo":15}4 {"Foo":15}
5 {"Foo":"15"}
- 鍵名:不能含有空格及特殊字元‘$‘和‘.‘,同時以底線開頭的鍵是保留的
- 鍵名區分大小寫,如上述的3和4是不同的文檔
- 文檔中鍵名不能重複
- 文檔區別類型,如上述的4和5,值的類型不一樣所以屬於不同的文檔
- 鍵的值不僅是字串還可以是其他類型
二、集合
集合就是一組文檔,如果說文檔如關聯式資料庫中的行,那麼集合就如同表。集合有如下特點:
1、無模式
集合是無模式的,這意味著集合裡可以儲存各種各樣的文檔。那麼是不是mongodb中只需要一個集合就可以了呢?答案是否,下面是一些理由:
- 易於管理:如果各種各樣的文檔都放到一個集合中,那麼對於開發人員或管理員都是噩夢。
- 提高效率:在一個集合中查不同類型的文檔,速度上肯定不如各個單獨類型的集合快。
- 提高索引效率
2、命名
我們可以名字來標識集合,下面是一些約束:
- 不可為空字串,如""
- 不能含有空格
- 不能以system.開頭,這是系統保留首碼
- 不能含有特殊字元,如$
組織集合的一種常用慣例是按命名空間劃分子集合,比如開發一個部落格
三、資料庫
資料庫包括多個集合,一個執行個體中包括多個資料庫,一般一個應用對應一個資料庫。資料庫的命名規則:
- 不能是Null 字元串
- 不能包括空格等特殊字元
- 應該全部小寫
- 不能使用系統預留的,如admin,local,config
關於資料庫的相關操作:
#查看當前資料庫> dbtest#切換當前資料庫> use localswitched to db local> dblocal
獲得協助:
> help db.help() help on db methods db.mycoll.help() help on collection methods sh.help() sharding helpers rs.help() replica set helpers help admin administrative help help connect connecting to a db help help keys key shortcuts help misc misc things to know help mr mapreduce show dbs show database names show collections show collections in current database show users show users in current database show profile show most recent system.profile entries with time >= 1ms show logs show the accessible logger names show log [name] prints out the last segment of log in memory, ‘global‘ is default use <db_name> set current database db.foo.find() list objects in collection foo db.foo.find( { a : 1 } ) list objects in foo where a == 1 it result of the last line evaluated; use to further iterate DBQuery.shellBatchSize = x set default number of items to display on shell exit quit the mongo shell>
【二】MongoDB入門