MongoDB介紹

轉(zhuǎn)載自:https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html

Mongo中的一些概念

SQL術(shù)語/概念 MongoDB術(shù)語/概念 解釋/說明
database database 數(shù)據(jù)庫
table collection 數(shù)據(jù)庫表/集合
row document 數(shù)據(jù)記錄行/文檔
column field 數(shù)據(jù)字段/域
index index 索引
table joins 表連接,MongoDB不支持
primary key primary key 主鍵,MongoDB自動將_id字段設(shè)置為主鍵

數(shù)據(jù)庫

  • 一個mongodb中可以建立多個數(shù)據(jù)庫。
  • MongoDB的默認數(shù)據(jù)庫為"db",該數(shù)據(jù)庫存儲在data目錄中。
  • MongoDB的單個實例可以容納多個獨立的數(shù)據(jù)庫,每一個都有自己的集合和權(quán)限厂榛,不同的數(shù)據(jù)庫也放置在不同的文件中。
  • 數(shù)據(jù)庫名規(guī)則(滿足以下條件的任意UTF-8字符串)
    • 不能是空字符串("")
    • 不得含有' '(空格)、.匿情、$、/信殊、\和\0 (空字符)
    • 應(yīng)全部小寫
    • 最多64字節(jié)
      有一些數(shù)據(jù)庫名是保留的炬称,可以直接訪問這些有特殊作用的數(shù)據(jù)庫

文檔(Document)

  • 文檔是一組鍵值(key-value)對(即 BSON)。MongoDB 的文檔不需要設(shè)置相同的字段涡拘,并且相同的字段不需要相同的數(shù)據(jù)類型玲躯,這與關(guān)系型數(shù)據(jù)庫有很大的區(qū)別,也是 MongoDB 非常突出的特點鳄乏。
  • 一個簡單的文檔例子如下:

{"site":"www.12306.com", "name":"搶不到票網(wǎng)站"}

  • 注意:
    • 文檔中的鍵/值對是有序的跷车。
    • 文檔中的值不僅可以是在雙引號里面的字符串,還可以是其他幾種數(shù)據(jù)類型(甚至可以是整個嵌入的文檔)橱野。
    • MongoDB區(qū)分類型和大小寫朽缴。
    • MongoDB的文檔不能有重復(fù)的鍵。
    • 文檔的鍵是字符串水援。除了少數(shù)例外情況密强,鍵可以使用任意UTF-8字符。
  • 文檔鍵命名規(guī)范:
    • 鍵不能含有\(zhòng)0 (空字符)蜗元。這個字符用來表示鍵的結(jié)尾或渤。
    • .和$有特別的意義,只有在特定環(huán)境下才能使用奕扣。
    • 以下劃線"_"開頭的鍵是保留的(不是嚴格要求的)薪鹦。

集合Collection

  • 集合就是 MongoDB 文檔組,類似于 RDBMS (關(guān)系數(shù)據(jù)庫管理系統(tǒng):Relational Database Management System)中的表格惯豆。
  • 集合存在于數(shù)據(jù)庫中池磁,集合沒有固定的結(jié)構(gòu),這意味著你在對集合可以插入不同格式和類型的數(shù)據(jù)楷兽,但通常情況下我們插入集合的數(shù)據(jù)都會有一定的關(guān)聯(lián)性框仔。
  • 比如,我們可以將以下不同數(shù)據(jù)結(jié)構(gòu)的文檔插入到集合中:

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.runoob.com","name":"菜鳥教程","num":5}

  • 當(dāng)?shù)谝粋€文檔插入時拄养,集合就會被創(chuàng)建离斩。
  • 集合的命名規(guī)則
    • 集合名不能是空字符串""银舱。
    • 集合名不能含有\(zhòng)0字符(空字符),這個字符表示集合名的結(jié)尾跛梗。
    • 集合名不能以"system."開頭寻馏,這是為系統(tǒng)集合保留的前綴。
    • 用戶創(chuàng)建的集合名字不能含有保留字符核偿。有些驅(qū)動程序的確支持在集合名里面包含诚欠,這是因為某些系統(tǒng)生成的集合中包含該字符。除非你要訪問這種系統(tǒng)創(chuàng)建的集合漾岳,否則千萬不要在名字里出現(xiàn)$轰绵。

MongoDB 數(shù)據(jù)類型

數(shù)據(jù)類型 描述
String 字符串。存儲數(shù)據(jù)常用的數(shù)據(jù)類型尼荆。在 MongoDB 中左腔,UTF-8 編碼的字符串才是合法的。
Integer 整型數(shù)值捅儒。用于存儲數(shù)值液样。根據(jù)你所采用的服務(wù)器,可分為 32 位或 64 位巧还。
Boolean 布爾值鞭莽。用于存儲布爾值(真/假)。
Double 雙精度浮點值麸祷。用于存儲浮點值澎怒。
Min/Max keys 將一個值與 BSON(二進制的 JSON)元素的最低值和最高值相對比。
Array 用于將數(shù)組或列表或多個值存儲為一個鍵阶牍。
Timestamp 時間戳丹拯。記錄文檔修改或添加的具體時間。
Object 用于內(nèi)嵌文檔荸恕。
Null 用于創(chuàng)建空值。
Symbol 符號死相。該數(shù)據(jù)類型基本上等同于字符串類型融求,但不同的是,它一般用于采用特殊符號類型的語言算撮。
Date 日期時間生宛。用 UNIX 時間格式來存儲當(dāng)前日期或時間。你可以指定自己的日期時間:創(chuàng)建 Date 對象肮柜,傳入年月日信息陷舅。
Object ID 對象 ID。用于創(chuàng)建文檔的 ID审洞。
Binary Data 二進制數(shù)據(jù)莱睁。用于存儲二進制數(shù)據(jù)待讳。
Code 代碼類型。用于在文檔中存儲 JavaScript 代碼仰剿。
Regular expression 正則表達式類型创淡。用于存儲正則表達式。

ObjectId類型

  • ObjectId 類似唯一主鍵南吮,可以很快的去生成和排序琳彩,包含 12 bytes,含義是:
    • 前 4 個字節(jié)表示創(chuàng)建 unix 時間戳,格林尼治時間 UTC 時間部凑,比北京時間晚了 8 個小時
    • 接下來的 3 個字節(jié)是機器標識碼
    • 緊接的兩個字節(jié)由進程 id 組成 PID
    • 最后三個字節(jié)是隨機數(shù)
image
  • MongoDB 中存儲的文檔必須有一個 _id 鍵露乏。這個鍵的值可以是任何類型的,默認是個 ObjectId 對象
  • 由于 ObjectId 中保存了創(chuàng)建的時間戳涂邀,所以你不需要為你的文檔保存時間戳字段瘟仿,你可以通過 getTimestamp 函數(shù)來獲取文檔的創(chuàng)建時間:
> var newObject =  ObjectId() 
> newObject.getTimestamp() 
ISODate("2017-11-25T07:21:10Z")
  • ObjectId 轉(zhuǎn)為字符串
> newObject.str
5a1919e63df83ce79df8b38f
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市必孤,隨后出現(xiàn)的幾起案子猾骡,更是在濱河造成了極大的恐慌,老刑警劉巖敷搪,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兴想,死亡現(xiàn)場離奇詭異,居然都是意外死亡赡勘,警方通過查閱死者的電腦和手機嫂便,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闸与,“玉大人毙替,你說我怎么就攤上這事〖#” “怎么了厂画?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拷邢。 經(jīng)常有香客問我袱院,道長,這世上最難降的妖魔是什么瞭稼? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任忽洛,我火速辦了婚禮,結(jié)果婚禮上环肘,老公的妹妹穿的比我還像新娘欲虚。我一直安慰自己,他們只是感情好悔雹,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布复哆。 她就那樣靜靜地躺著欣喧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寂恬。 梳的紋絲不亂的頭發(fā)上续誉,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機與錄音初肉,去河邊找鬼酷鸦。 笑死,一個胖子當(dāng)著我的面吹牛牙咏,可吹牛的內(nèi)容都是我干的臼隔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼妄壶,長吁一口氣:“原來是場噩夢啊……” “哼摔握!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丁寄,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤氨淌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后伊磺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盛正,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年屑埋,在試婚紗的時候發(fā)現(xiàn)自己被綠了豪筝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡摘能,死狀恐怖续崖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情团搞,我是刑警寧澤严望,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站逻恐,受9級特大地震影響像吻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梢莽,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奸披。 院中可真熱鬧昏名,春花似錦、人聲如沸阵面。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仑扑,卻和暖如春览爵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背镇饮。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工蜓竹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人储藐。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓俱济,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钙勃。 傳聞我的和親對象是個殘疾皇子蛛碌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容