1. 程式人生 > >mongodb資料庫 介紹及教程大全

mongodb資料庫 介紹及教程大全

什麼是MongoDB ?

#MongoDB 是由C++語言編寫的,是一個基於分散式檔案儲存的開源資料庫系統。 在高負載的情況下,新增更多的節點,可以保證伺服器效能。
#MongoDB 旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。
#MongoDB 將資料儲存為一個文件,資料結構由鍵值(key=>value)對組成。MongoDB 文件類似於 JSON 物件。欄位值可以包含其他文件,陣列及文件陣列。
簡介

MongoDB 是一個基於分散式 檔案儲存的NoSQL資料庫
由C++語言編寫,執行穩定,效能高
旨在為 WEB 應用提供可擴充套件的高效能資料儲存解決方案
檢視官方網站

MongoDB特點

模式自由 :可以把不同結構的文件儲存在同一個資料庫裡
面向集合的儲存:適合儲存 JSON風格檔案的形式
完整的索引支援:對任何屬性可索引
複製和高可用性:支援伺服器之間的資料複製,支援主-從模式及伺服器之間的相互複製。複製的主要目的是提供冗餘及自動故障轉移
自動分片:支援雲級別的伸縮性:自動分片功能支援水平的資料庫叢集,可動態新增額外的機器
豐富的查詢:支援豐富的查詢表達方式,查詢指令使用JSON形式的標記,可輕易查詢文件中的內嵌的物件及陣列
快速就地更新:查詢優化器會分析查詢表示式,並生成一個高效的查詢計劃
高效的傳統儲存方式:支援二進位制資料及大型物件(如照片或圖片)

基本操作

MongoDB將資料儲存為一個文件,資料結構由鍵值(key=>value)對組成
MongoDB文件類似於JSON物件,欄位值可以包含其他文件、陣列、文件陣列
安裝管理mongodb環境
完成資料庫、集合的管理
資料的增加、修改、刪除、查詢

三元素: 資料庫、集合、文件

資料庫是一個集合的物理容器
集合就是關係資料庫中的表
文件對應著關係資料庫中的行

文件,就是一個物件,由鍵值對構成,是json的擴充套件Bson形式 {‘name’:‘guojing’,‘gender’:'男’}

集合:類似於關係資料庫中的表,儲存多個文件,結構不固定,如可以儲存如下文件在一個集合中 {‘name’:‘guojing’,‘gender’:‘男’} {‘name’:‘huangrong’,‘age’:18} {‘book’:‘shuihuzhuan’,‘heros’:'108’}

一個mongodb中可以建立多個數據庫

資料庫:是一個集合的物理容器,一個數據庫中可以包含多個集合

1.不能是空字串("")。
2.不得含有’ '(空格)、.、$、/、\和\0 (空宇符)。
3.應全部小寫。
4.最多64位元組

集合:集合中可以儲存多個文件

1.集合名不能是空字串""。
2.集合名不能含有\0字元(空字元),這個字元表示集合名的結尾。
3.集合名不能以"system."開頭,這是為系統集合保留的字首。
4.使用者建立的集合名字不能含有保留字
符。有些驅動程式的確支援在集合名裡面包
含,這是因為某些系統生成的集合中包含該
字元。除非你要訪問這種系統建立的集合,
否則千萬不要在名字裡出現$。

文件:就是一個物件,由鍵值對構成,是json的擴充套件Bson(可以理解為在JSON的基礎上添加了一些json中沒有的資料型別)形式。

需要注意的是:
1.文件中的鍵/值對是有序的。
2.文件中的值不僅可以是在雙引號裡
面的字串,還可以是其他幾種資料類
型(甚至可以是整個嵌入的文件)。
3.MongoDB區分型別和大小寫。
4.MongoDB的文件不能有重複的鍵。
5.文件的鍵是字串。除了少數例外
情況,鍵可以使用任意UTF-8字元。
文件鍵命名規範:
1.鍵不能含有\0 (空字元)。這個字元用來表示鍵的結尾。
2. .和$有特別的意義,只有在特定環境下才能使用。

關於mongodb 的安裝與啟動

安裝
方式一: MongoDB安裝很簡單,無需下載原始檔,可以直接用apt-get命令進行安裝最新的可靠版。

1.sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

如果是16.04執行下面這條操作

2.echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

如果是18.04執行下面這條操作
echo “deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

3.sudo apt-get update

4.sudo apt-get install -y mongodb-org

安裝完成後,在終端輸入以下命令檢視MongoDB版本: mongo -version 一般安裝成功後會顯示為4.0.1版本 MongoDB shell version v4.0.1
方式二: 根據官網指定步驟安裝: https://www.mongodb.org/downloads
1.使用下載包手動安裝:

sudo apt-get install libcurl3 openssl
tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.0.1.tgz

4.進入加壓後文件存放的目錄,然後將mongodb移動到/usr/local/目錄下

sudo mv mongodb-linux-x86_64-ubuntu1604-4.0.1/ /usr/local/mongodb

5.將可執行檔案新增到PATH路徑中,自己的環境配置檔案中新增此路徑

sudo vim .bashrc

export PATH=/usr/local/mongodb/bin:$PATH
退出並儲存

source .bashrc 啟用配置檔案

安裝完成後,在終端輸入以下命令檢視MongoDB版本: mongo -version 一般安裝成功後會顯示為4.0.1版本 MongoDB shell version v4.0.1
管理mongo

配置檔案在/etc/mongod.conf
預設埠27017

啟動mongodb 服務

sudo service mongod start

停止,停止後輸入將不能啟動shell

sudo service mongod stop

重置服務

sudo service mongod restop

啟動mongodb客戶端

mongo

終端退出連線

exit

或ctrl+c
解除安裝mongodb資料庫
刪除 MongoDB 包

sudo apt-get purge mongodb-org

刪除 MongoDB 資料庫和日誌檔案

sudo rm -r /var/log/mongodb

sudo rm -r /var/lib/mongodb

mongodb資料庫 集合 及相關操作

資料庫基本命令:

啟動資料庫

sudo service mongod start

#在輸入並進入資料庫
mongo

在這裡插入圖片描述
檢視當前資料庫

db;

在這裡插入圖片描述
檢視所有資料庫

show dbs;

在這裡插入圖片描述

切換資料庫

use 資料庫名;

在這裡插入圖片描述

檢視當前資料庫資訊

db.stats()
db:當前資料庫的名字。
collections:當前資料庫的集合數。
objects:當前資料庫所有集合總所包含的物件(即文件)的數量。
avgObjSize:每個文件的平均大小(以位元組為單位)。
dataSize:此資料庫中儲存的未壓縮資料的總大小,不是指佔有磁碟大小,單位是bytes。
storageSize:分配給此資料庫的集合用於儲存文件的空間總量,也就是當前資料庫佔有磁碟大小,單位是bytes。
numExtents:當前資料庫所有集合包含的擴充套件數量的統計。
indexes:資料庫中包含的所有集合的索引總數,也就是system.indexes表資料行數。
indexSize:此資料庫上建立的所有索引的總大小,單位是bytes。

在這裡插入圖片描述

資料庫刪除:刪除當前指向的資料庫,如果資料庫不存在,則什麼也不做

db.dropDatabase()

集合的相關操作

例1:不限制集合大小

db.createCollection("stu")

例2:限制集合大小,後面學會插入語句後可以檢視效果

引數capped:預設值為false表示不設定上限,值為true表示設定上限
引數size:當capped值為true時,需要指定此引數,表示上限大小,當文件達到上限時,會將之前的資料覆蓋,單位為位元組

db.createCollection("sub", { capped : true, size : 10 } )

例3:建立固定集合 sub,整個集合空間大小 6142 KB, 文件最大個數為 100 個。

db.createCollection("sub", { capped : true, size : 10 ,max:100} )

檢視當前資料庫所有集合

show collections:當前資料庫的集合數。

語法: db.集合名稱.find()

db.stu.find()

刪除集合

語法格式:

db.集合名稱.drop() 如果成功刪除選定集合,則 drop() 方法返回 true,否則返回 false

資料的 增,刪,改,查操作

文件 文件是一組鍵值(key-value)對(即BSON)。MongoDB 的文件不需要設定相同的欄位,並且相同的欄位不需要相同的資料型別,這與關係型資料庫有很大的區別,也是 MongoDB 非常突出的特點。

RDBMS MongoDB
資料庫 資料庫
表格 集合
行 文件
列 欄位
表聯合 嵌入文件
主鍵 主鍵 (MongoDB 提供了 key 為 _id )

MongoDB 資料型別 下表為MongoDB中常用的幾種資料型別。
資料型別 描述
String 字串。儲存資料常用的資料型別。在 MongoDB 中,UTF-8 編碼的字串才是合法的。
Integer 整型數值。用於儲存數值。根據你所採用的伺服器,可分為 32 位或 64 位。
Boolean 布林值。用於儲存布林值(真/假)。
Double 雙精度浮點值。用於儲存浮點值。
Array 用於將陣列或列表或多個值儲存為一個鍵。
Timestamp 時間戳。記錄文件修改或新增的具體時間。
Object 用於嵌入式的文件,即一個值為一個文件
Null 用於建立空值。
Date 日期時間。用 UNIX 時間格式來儲存當前日期或時間。你可以指定自己的日期時間:建立 Date 物件,傳入年月日資訊。
Object ID 物件 ID。用於建立文件的 ID。
Binary Data 二進位制資料。用於儲存二進位制資料。

插入文件

db.集合名稱.insert({鍵:值})

在這裡插入圖片描述
注意:插入文件時,如果不指定_id引數,MongoDB會為文件分配一個唯一的ObjectId

指定 _id插入

db.stu.insert({_id:'20180819',name:'鄭程峰2',gender:1})

多條插入: 括號方法 ([{}]) 多條要加入一對[]

db.stu.insert([{name:'王明',gender:1},{name:'王玲玲',gender:0}])

指定單詞方法插入 insertOne代表插入一條 insertMany代表插入多條

db.集合名稱.insertOne(document) db.集合名稱.insertMany(document)

查詢全部文件

語法: db.集合名稱.find()

db.文件名.find()

更新文件

MongoDB 使用 update() 和 save() 方法來更新集合中的文件。兩個函式是有區別的。
update() 方法

update() 方法用於更新已存在的文件

db.collection.update(
,
,
{
upsert: ,
multi: ,
}
)

引數說明:

query : update的查詢條件,類似sql update查詢內where後面的。
update : update的物件和一些更新的操作符(如,,inc…)等,也可以理解為sql update查詢內set後面的
upsert : 可選,這個引數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。

全文件更新

db.集合名.update(找到指定{name:'xxxxx'},並更新新的{name:'張xxx'})

指定屬性更新,通過操作符$set

db.集合名.update({name:'李自成'},{$set:{name:'闖王李自成'}})

指定屬性通過操作符$set更新多條

db.集合名.update({name:'小花'},{$set:{name:'小白'}},{multi:true})

在這裡插入圖片描述

相關推薦

mongodb資料庫 介紹教程大全

什麼是MongoDB ? #MongoDB 是由C++語言編寫的,是一個基於分散式檔案儲存的開源資料庫系統。 在高負載的情況下,新增更多的節點,可以保證伺服器效能。 #MongoDB 旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。 #MongoDB 將

mongoDB簡單介紹安裝

疑問 每次 data- .org 存儲 cmd 針對 安裝包 目錄 近期一段時間對mongoDB進行了簡單的學習,從它是什麽?幹什麽?怎麽用?優缺點?這一系列的疑問到如今可以簡單運用。我想須要對其進行簡單的總結和概述。那麽這一篇就從最基礎的開始,對其

mongoDB簡單介紹使用

blog png 條件查詢 .com mkdir 基本 -- 客戶 文件 一.mongodb的簡單介紹 二.mongodb的安裝和配置安裝環境centos7 1.下載包wget https://fastdl.mongodb.org/linux/mongodb-linux-x

python連線MongoDB資料庫方法增刪改查等操作小結。

Y9   建議安裝MongoDB視覺化工具“Robo 3T”,可以很直觀的看到對MongoDB操作後的資料。 1、‘Robo 3T’的安裝,網上很多途徑可下載,在此分享我使用的版本: 連結:https://pan.baidu.com/s/1EcjmUVkXz1GQeTXy2fMk

MongoDB資料庫安裝配置環境(windows10系統)

mongodb 下載與安裝文件 MongoDB資料庫安裝及配置環境(windows10系統) https://www.cnblogs.com/best/p/6212807.html windows10系統下MongoDB的安裝及環境配置: MongoDB的安裝   下載地址:&n

MongoDB資料庫介紹和Java使用

MongoDB簡介         MongoDB是一個開源的面向文件儲存的NoSQL資料庫,它沒有了表結構的概念和資料結構的限制;一個數據庫包含多個集合,每個集合理論上包含無數個文件,每個文件就是一條記

MongoDb資料庫介紹、安裝、使用

1.資料庫與檔案的區別 資料庫有資料庫表、行和列的概念,讓我們資料儲存更方便 資料庫提供了非常方便的介面,可以讓後端語言實現增刪改查 2.NoSQL資料庫在以下的這幾種場景應用比較適用 1.資料庫模型比較簡單 2.需要靈活性更強的IT系統 3.對資料庫效能要求較高 4.不需要高度的一致性 5

Nosql資料庫介紹與關係型資料庫的比較

一、nosql資料庫介紹 NoSQL = Not only SQL,非關係型資料庫 nosql儲存的是非關係型資料,像文件啊,影象啊,很明顯這些大的資料單臺伺服器是不夠儲存的,所以它支援高可擴充套件性,分散式計算。常用於分散式系統。 NoSQL資料庫的型別:鍵值資料庫(redis

MongoDB基本介紹一些用法

一、概念:       分片(sharding)是指將資料庫拆分,將其分散在不同的機器上的過程。將資料分散到不同的機器上,不需要功能強大的伺服器就可以儲存更多的資料和處理更大的負載。基本思想就是將集合切成小塊,這些塊分散到若干片裡,每個片只負責總資料的一部分,最

NET快取框架CacheManager在混合式開發框架中的應用(1)-CacheManager的介紹和使用 基於C#的MongoDB資料庫開發應用(4)--Redis的安裝使用

在我們開發的很多分散式專案裡面(如基於WCF服務、Web API服務方式),由於資料提供涉及到資料庫的相關操作,如果客戶端的併發數量超過一定的數量,那麼資料庫的請求處理則以爆發式增長,如果資料庫伺服器無法快速處理這些併發請求,那麼將會增加客戶端的請求時間,嚴重者可能導致資料庫服務或者應用服務直接癱瘓。快取方案

.NET快取框架CacheManager在混合式開發框架中的應用(1)-CacheManager的介紹和使用 基於C#的MongoDB資料庫開發應用(4)--Redis的安裝使用

在我們開發的很多分散式專案裡面(如基於WCF服務、Web API服務方式),由於資料提供涉及到資料庫的相關操作,如果客戶端的併發數量超過一定的數量,那麼資料庫的請求處理則以爆發式增長,如果資料庫伺服器無法快速處理這些併發請求,那麼將會增加客戶端的請求時間,嚴重者可能導致資料庫服務或者應用服務直接癱瘓。快取方案

Burp Suite掃描器漏洞掃描功能介紹簡單教程

author -s 測試方法 inject psc sql url地址 issue 功能 pageuo 2017-07-25 共852828人圍觀 ,發現 15 個不明物體 工具新手科普 * 本文作者:pageuo,本文屬FreeBuf原創獎勵計劃,未經許可禁止

資料庫JanusGraph介紹使用(三):安裝與初步使用

圖資料庫JanusGraph介紹及使用(三):安裝與初步使用 作者:家輝,日期:2018-07-05 CSDN部落格: http://blog.csdn.net/gobitan   說明:這是圖資料庫JanusGraph系列的第三篇,後面會陸續介紹。 圖資料庫Janus

資料庫JanusGraph介紹使用(二):架構

圖資料庫JanusGraph介紹及使用(二):架構 作者:家輝,日期:2018-07-03 CSDN部落格: http://blog.csdn.net/gobitan   說明:這是圖資料庫JanusGraph系列的第二篇,後面會陸續介紹。 圖資料庫JanusGraph

資料庫JanusGraph介紹使用(一):簡介

  圖資料庫JanusGraph介紹及使用(一):簡介 作者:家輝,日期:2018-07-01 CSDN部落格: http://blog.csdn.net/gobitan   說明:這是圖資料庫JanusGraph系列的第一篇,後面會陸續介紹。 圖資料庫J

HikariCP 的Java資料庫連線池介紹配置

HiKariCP是資料庫連線池的一個後起之秀,號稱效能最好,可以完美地PK掉其他連線池。 原文地址:http://blog.csdn.net/clementad/article/details/46928621 官網:https://github.com/brettwooldridge/Hi

【專案實戰】:python:MongoDB資料庫的操作練習

python:MongoDB資料庫的操作及練習 import pymongo class MongodbConn(object): def __init__(self): self.CONN = pymongo.MongoClient("mongodb:/

資料庫Oracle安裝教程測試辦法

1.先到Oracle官網下載Oracle12c(博主下的此版本) http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html 2.下載完成後解壓zip檔案得到如圖資料夾,點選set

[學習筆記]優雅地儲存和管理資料---MongoDB資料庫管理工具的安裝和使用

文章包含以下內容: 1.MongoDB的下載,安裝和命令列的使用 2.Studio 3T(又名 RoboMongo)的下載和安裝 3.adminMongo的下載和安裝 將在下一篇文章中介紹模組pymongo的第三方庫如何配合Studio 3T或adminMongo完成爬蟲資料的資

爬蟲資料庫MongoDB介紹

MongoDB (名稱來自「humongous (巨大無比的)」), 是一個可擴充套件的高效能,開源,模式自由,面向文件的NoSQL,基於 分散式 檔案儲存,由 C++ 語言編寫,設計之初旨在為 WEB 應用提供可擴充套件的高效能資料儲存解決方案。 MongoDB使用的是記憶體對映儲存引擎,它會把磁