基本概念
文檔時MongoDB中數據的基本單元,是MongoDB的核心概念,很類似關系數據庫中的行(記錄)
集合可以被看作沒有模式的表(表)
MongoDB每個實例都可容納多個獨立數據庫,每個數據庫都有自己的集合和權限(數據庫)
文檔
多個鍵及其關聯的值有序地放置在一起就是文檔
單鍵值文檔{“userName“:”BBS11“}
多鍵值文檔{ "_id" : ObjectId("58097dfe7e6d64baca852729"), "name" : "test", "add" : "china" }
文檔中的值不僅可以是字符串,也可以是其他數據類型(或者嵌入其他文檔)
鍵是字符串,鍵可以使用任意UTF-8字符
鍵不能含有\0(空字符),空字符表示鍵的結尾
和$作為保留字符,通常不應該出現在鍵中
以下划線“_”開頭的鍵通常情況下是保留的
MongoDB不但區分數據類型,也區分大小寫
{“user”:“11”}與{“user”:11}不同,{“User”:“11”}與{“user”:“11”}也不同
文檔中不允許有重復的鍵。{“user”:“11”,“user”:“12”}非法
集合
集合就是一組文檔,與關系數據庫的表可類比
集合是無模式的。MongoDB對模式不做強制要求,有開發者靈活把握
命名規則:
1.集合名不能是空串“”
2.不能含有空字符\0
3.不能以“system.”開頭,這是系統集合保留的前綴
4.集合名不能含保留字符$
組織集合的一種習慣是以. 分開,近命名空間划分子集合,列如system.Users,system.indexes
數據庫
多個集合組成數據庫
一個MongoDB實例可承載多個數據庫,互相之間彼此獨立
開發中通常將一個應用的所有數據存放到同一個數據庫中
磁盤上,MongoDB將不同數據庫存放在不同文件中
命名規則:
- 數據庫名是utf-8字符串,最長64個字符
- 不能是空字符串
- 不能含“ 、 . $ / 和\0
- 應全部小寫
系統保留數據庫
- admin:這是root數據庫,添加用戶到該數據庫中,該用戶會自動繼承所有數據庫權限
- local:這個數據庫中的數據永遠不會被復制,可以用於存儲限於本地數據單台服務器的任意集合
- config:分片時,config數據庫在內部使用,保存分片信息
把數據庫名放集合名錢,得到的就是集合的完全限定名稱,叫命名空間。命名空間長度不能超過121字節,實際使用應小於100字節