(2) MongoDB基本概念及與關系型數據庫的對照

MongoDB不是關系型數據庫,因此也就沒有了表,行等概念,但是有一些類似的概念,主要有 數據庫(Database),集合(Collection),文檔(Document),其中數據庫跟關系型數據庫的數據庫是一個概念,集合相當于表,文檔相當于行。下面分別來介紹這些概念。

?

1. 文檔:

文檔是MongoDB的核心概念,也是MongoDB種數據的基本單元。所謂文檔就是多個鍵及其關聯的值有序的放置在一起。如,

{"greeting":"Hello World!"}

在這個文檔中,"greeting"是鍵,"Hello World!"是值

當然,絕大多數的文檔包含多個鍵/值,比這個要復雜的多,如:

{"author":"Tian","Sex":"M","hobby":"MBK"}

甚至文檔里面還包含文檔。

?

1.1 文檔的鍵的命名規則

1). 文檔的鍵是字符串;

2). 鍵不能包含有\0(空字符),這個字符用來表示鍵的結尾;

3). $和.有特殊的含義,被保留了;

4). 以下劃線"_"的鍵被保留了,雖然這個并不是嚴格的要求。

5). 文檔的鍵不能重復

6). 區分大小寫,如{"author":"tian"}和{"Author":"tian"}是不一樣的

?

2. 集合

集合,指的是一組文檔。

MongoDB的集合雖然類似于關系數據庫的表,但是,集合是無模式的,不必像關系數據庫的表那樣,必須事先定義,并且結構固定。

我們可以將以下2個文檔存到同一個集合中:

{"author":"tian"}

{"age":6}

這兩個文檔,鍵不一樣,對應的值也不一樣,甚至類型也不一樣,而這在關系數據庫中是不可想象的。

?

2.1 集合的命名

1). 集合名不能是空字符串""

2). 集合名不能含有\0(空字符),這個字符是集合名的結尾

3). 集合名不能以"system."開頭,以"system."開頭表示系統集合,如system.users這個集合保留數據庫用戶的信息,system.namespaces這個集合保存數據庫所有集合的信息

4). 用戶創建的集合名字不能含有保留字符$

?

2.2 子集合

我們可以通過"."字符分開的按命名空間劃分的子集合來組織集合。如,一個帶有博客功能的應用可能包含2個集合blog.authors和blog.posts,這樣做的目的只是為了組織更好,事實上, 我們不一定存在blog這個集合的。

?

3. 數據庫

多個集合組成數據庫。一個MongoDB實例可以包含多個數據庫,他們之間可以視為完全獨立。

?

3.1 數據庫命名

1). 不能是空字符串;

2). 不能含有空格、.、$、/、\、和\0;

3). 應全部小寫;

4). 最多64字節;

5). 不能是保留的數據庫名:admin,local,config

?

參考:MongoDB權威指南

轉載于:https://www.cnblogs.com/tian2010/archive/2012/07/17/2596459.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447995.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447995.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447995.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是 ES6 ?

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 ECMAScript 6(以下簡稱ES6)是JavaScript語言的下一代標準,已經在2015年6月正式發布了。Mozilla公司將…

史上最全換檔講解手動檔汽車的換擋技巧

轉個東東給大家看看,關于換檔的。在網上已有很多討論,涉及到的方面也林林總總。歸納一下的話,我覺得不外乎可以分為兩 大類,一是換擋時機,即何時加檔何時減檔;二是換擋本身的操作,包括換擋時油門…

CorelDRAW X7 X8 2017 2018是什么關系?

從CorelDRAW 2017版本開始我們叫習慣了的X幾系列的CorelDRAW毅然決然的就換了稱呼,所以有時候很多朋友對于軟件版本,經常會傻傻分不清,還有人認為X8版本比2017版本高,究竟為什么會這么認為呢? “幫我轉個X8吧”。 “我…

阮一峰 《ECMAScript 6 入門》:let 和 const 命令

以下內容全文出自 阮一峰的書: 《ECMAScript 6 入門》 電子版地址:ES 6標準入門(第3版) let 命令 基本用法 ES6 新增了let命令,用來聲明變量。它的用法類似于var,但是所聲明的變量,只在let命令…

怠速詳解

怠速狀態是指發動機空轉時一種工作狀況。在發動機運轉時,如果完全放松油門踏板,這時發動機就處于怠速狀態。調整怠速時轉速不能突高突低,否則會對發動機造成早期磨損,最好到汽車維修部門進行調整。中文名 怠數英文名 IDLE屬 性…

Python logger模塊

1 logging模塊簡介 logging模塊是Python內置的標準模塊,主要用于輸出運行日志,可以設置輸出日志的等級、日志保存路徑、日志文件回滾等;相比print,具備如下優點: 可以通過設置不同的日志等級,在release版本…

離合器半聯動

半聯動即離合器半聯動。 離合器半聯動是指離合器不穩定聯接的工作狀態,即駕駛員踩離合器踏板,使離合器壓板壓力逐步減小,造成主動盤與從動盤之間處于邊轉邊滑的狀態。在場內駕駛考試時,駕駛員由于操作不熟練,不能在要求…

學習 cookie session 正向代理和反向代理的區別

1.學習網址:https://www.cnblogs.com/wxinyu/p/9154178.html 1.1 當我打開一個瀏覽器的時候,客戶端有session id區分用戶, 服務器有了session的瀏覽記錄(瀏覽器編號的txt).多個頁面則多個session, 1.2 token就是令牌…

JS 中 Map 與 JSON 轉換

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1. JSON數據 轉 字符串 JSON.stringify(jsondata) 2. 字符串 轉 JSON JSON.parse(str) 3. Map 轉 JSON,需要先將Map轉化…

axios 發 post 請求,后端接收不到參數的解決方案

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 問題場景 場景很簡單,就是一個正常 axios post 請求: axios({headers: {deviceCode: A95ZEF1-47B5-AC90BF3},me…

nginx+keepalived高可用性負載均衡

一、前言nginx進程基于于MasterSlave(worker)多進程模型,自 身具有非常穩定的子進程管理功能。在Master進程分配模式下,Master進程永遠不進行業務處理,只是進行任務分發,從而達到Master進程的存 活高可靠性,Slave(work…

白發變黑有訣竅

白發變黑發的有效方法 1、要遠離焦慮: 如果天天的憂愁、煩惱、焦慮,則可能引起脫發,焦慮壓抑的時間越長,脫發就會迅速的加快。不管工作如何忙碌,建議女性保持適當的運動量以及愉快的心情,頭發也會富有光…

經典監督學習方法

生成算法嘗試去找這個數據到底是怎么生成的(產生的),然后再對一個信號進行分類。基于你的生成假設,哪個類別最有可能產生這個信號,這個信號就屬于那個類別。 判別模型不關心數據是怎么生成的,它只關心信號之…

Map 集合循環、遍歷的 四 種方式

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 package cn.jdbc.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry;/…

Ubuntu版本更新一路走來:朕就是這樣的漢子

今日,Ubuntu發布了最新的14.04版本。當然,業界對新版Ubuntu褒貶不一,為此我們回顧了Ubuntu版本更新歷史上幾個比較有代表性的版本,看看Ubuntu這一路走來究竟有什么變化。Ubuntu剛剛發布了最新的14.04版本,圍繞這一版本…

「2019紀中集訓Day7」解題報告

T1、小L的數列 給一個數列 \(\{f_i\}\):\[ f_i \prod_{j 1}^{j \leq k} f_{i - j}^{b_j}, \ (i > k) \] 現在給定數列的前 \(k \ (k \le 200)\) 項及 \({b_i}\),求第 \(n\) 項。 \(Sol\): 注意到數列的任意一項 \(f_i \ (i > k)\)&am…

我想擁有一座莊園:“ 暮春三月,江南草長,雜花生樹,群鶯亂飛 ... ”

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 // 或許這個心愿是緣于少時讀的詩:其中大多是對于自然的期許和神往 ... // 亦或許是想太多的人大多都有這樣的心愿 ... 我想…

安裝Ubuntu 14.04后要做的5件事情

Ubuntu最新版本Ubuntu 14.04已經發布,它是一個長期支持版本(LTS),提供軟件包和安全更新的服務周期為5年。本文為大家簡單介紹了Ubuntu 14.04版本新特性和安裝Ubuntu 14.04后需要做的5件事情,以供參考。Ubuntu目前是世界…

昨天,我的大學學習[2]

昨天,我的大學學習[2] 曾毅 誰能改變我的命運[大學二年級] 如果說大學一年級的時候是一種被動學習狀態,對計算機科學不能攬其全貌,那么進入大學二年級以后的學習便是比較有針對性的了,但這種轉變并非偶然,同樣也是經過…

VUE 項目 去除 input 框值 所有空格、vue 組件去除空格、input 去除空格

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1.以下所有方法 我都試過:不行。 str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格&…