(2) MongoDB基本概念及与关系型数据库的对照
MongoDB不是關(guān)系型數(shù)據(jù)庫,因此也就沒有了表,行等概念,但是有一些類似的概念,主要有 數(shù)據(jù)庫(Database),集合(Collection),文檔(Document),其中數(shù)據(jù)庫跟關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫是一個(gè)概念,集合相當(dāng)于表,文檔相當(dāng)于行。下面分別來介紹這些概念。
?
1. 文檔:
文檔是MongoDB的核心概念,也是MongoDB種數(shù)據(jù)的基本單元。所謂文檔就是多個(gè)鍵及其關(guān)聯(lián)的值有序的放置在一起。如,
{"greeting":"Hello World!"}
在這個(gè)文檔中,"greeting"是鍵,"Hello World!"是值
當(dāng)然,絕大多數(shù)的文檔包含多個(gè)鍵/值,比這個(gè)要復(fù)雜的多,如:
{"author":"Tian","Sex":"M","hobby":"MBK"}
甚至文檔里面還包含文檔。
?
1.1 文檔的鍵的命名規(guī)則
1). 文檔的鍵是字符串;
2). 鍵不能包含有\(zhòng)0(空字符),這個(gè)字符用來表示鍵的結(jié)尾;
3). $和.有特殊的含義,被保留了;
4). 以下劃線"_"的鍵被保留了,雖然這個(gè)并不是嚴(yán)格的要求。
5). 文檔的鍵不能重復(fù)
6). 區(qū)分大小寫,如{"author":"tian"}和{"Author":"tian"}是不一樣的
?
2. 集合
集合,指的是一組文檔。
MongoDB的集合雖然類似于關(guān)系數(shù)據(jù)庫的表,但是,集合是無模式的,不必像關(guān)系數(shù)據(jù)庫的表那樣,必須事先定義,并且結(jié)構(gòu)固定。
我們可以將以下2個(gè)文檔存到同一個(gè)集合中:
{"author":"tian"}
{"age":6}
這兩個(gè)文檔,鍵不一樣,對應(yīng)的值也不一樣,甚至類型也不一樣,而這在關(guān)系數(shù)據(jù)庫中是不可想象的。
?
2.1 集合的命名
1). 集合名不能是空字符串""
2). 集合名不能含有\(zhòng)0(空字符),這個(gè)字符是集合名的結(jié)尾
3). 集合名不能以"system."開頭,以"system."開頭表示系統(tǒng)集合,如system.users這個(gè)集合保留數(shù)據(jù)庫用戶的信息,system.namespaces這個(gè)集合保存數(shù)據(jù)庫所有集合的信息
4). 用戶創(chuàng)建的集合名字不能含有保留字符$
?
2.2 子集合
我們可以通過"."字符分開的按命名空間劃分的子集合來組織集合。如,一個(gè)帶有博客功能的應(yīng)用可能包含2個(gè)集合blog.authors和blog.posts,這樣做的目的只是為了組織更好,事實(shí)上, 我們不一定存在blog這個(gè)集合的。
?
3. 數(shù)據(jù)庫
多個(gè)集合組成數(shù)據(jù)庫。一個(gè)MongoDB實(shí)例可以包含多個(gè)數(shù)據(jù)庫,他們之間可以視為完全獨(dú)立。
?
3.1 數(shù)據(jù)庫命名
1). 不能是空字符串;
2). 不能含有空格、.、$、/、\、和\0;
3). 應(yīng)全部小寫;
4). 最多64字節(jié);
5). 不能是保留的數(shù)據(jù)庫名:admin,local,config
?
參考:MongoDB權(quán)威指南
轉(zhuǎn)載于:https://www.cnblogs.com/tian2010/archive/2012/07/17/2596459.html
總結(jié)
以上是生活随笔為你收集整理的(2) MongoDB基本概念及与关系型数据库的对照的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UNIX 网络编程知识,函数积累
- 下一篇: 2008技术内幕:T-SQL语言基础 联