簡述MongoDB資料庫

2021-10-17 14:08:32 字數 2697 閱讀 6649

一、 mongodb簡介

mongodb是乙個面向文件的資料庫系統。使用c++編寫,不支援sql,但有自己功能強大的查詢語法。

mongodb使用bson作為資料儲存和傳輸的格式。bson是一種類似json的二進位制序列化文件,支援巢狀物件和陣列。

mongodb很像mysql,document對應mysql的row,collection對應mysql的table。

在啟動mongodb之前,我們必須新建乙個存放mongodb資料和日誌的目錄。資料庫目錄:c:\mongodb\data\db\,日誌目錄:c:\mongodb\data\。

2-2、 執行服務端

開啟cmd視窗,進入到c:\mongodb\bin目錄下,執行服務端mongod.exe。

c:>cd c:\mongodb\bin

注:日誌檔案為c:\mongodb\data\logs,以及新增方式記錄(追加)。

資料目錄為c:\mongodb\data\db,並且每個資料庫將儲存在乙個單獨的目錄(–directoryperdb)

服務端要一直執行。ctrl+c可中斷。

2-3、 執行客戶端

再開啟乙個cmd視窗,進入到c:\mongodb\bin目錄下,執行客戶端mongo.exe來登入mongodb。(要保持服務端mongod.exe的視窗不關閉)

2-4、 測試操作

mongodb使用gridfs來儲存大檔案。每個bson物件大小不能超過4mb。

欄位名限制:不能以「$」開頭;不能包含「.」;「_id」是系統保留的字段,但使用者可以自己儲存唯一性的資料在字段中。

mongodb為每個資料庫分配一系列檔案。每個資料檔案都會被預分配乙個大小,第乙個檔案名字為「.0」,大小為64mb,第二個檔案「.1」為128mb,依此類推,檔案大小上限為2gb。

mongodb沒有新建資料庫或者collection的命令,只要進行insert或其它操作,mongodb就會自動幫你建立資料庫和collection。當查詢乙個不存在的collection時也不會出錯,mongo會認為那是乙個空的collection。

乙個物件被插入到資料庫中時,如果它沒有id,會自動生成乙個「_id」字段,為24位16進製制數。

mongodb命令列客戶端的指令碼語法有些類似mysql的:

show dbs // 列出所有資料庫

use memo // 使用資料庫memo。即使這個資料庫不存在也可以執行,但該資料庫不會立刻被新建,要等到執行了insert等的操作時,才會建立這個資料庫。

show collections // 列出當前資料庫的collections

db // 顯示當前資料庫

show users // 列出使用者

更多語法,檢視help

查詢資料:

mongodb的查詢語法很強大,類似於sql的條件查詢。例如,很多sql可以做的,它都可以做:

db.foo.find() // select * from foo

db.foo.find().limit(10) // select * from foo limit 10

db.foo.find().sort() // select * from foo order by x asc

db.foo.find().sort().skip(5).limit(10) // select * from foo order by x asc limit 5, 10

db.foo.find() // select * from foo where x = 10

db.foo.find(}) // select * from foo where x <= 10

db.foo.find({}, ) // select y from foo

一些sql不能做的,mongodb也可以做:

db.foo.find() // 搜尋巢狀文件address中city值為gz的記錄

db.foo.find() // 搜尋陣列

db.foo.ensureindex() // 在巢狀文件的字段上建索引

更新資料:

db.foo.update({},{})更新物件,第乙個引數是查詢物件,第二個是替代的,可以在第二個物件裡指定更新哪些字段,要使用$set

Mongodb資料庫集群分片技術簡述

一 分片 二 mongos mongodb需要路由程序mongos,mongos知道所有資料的存放位置,應用連線mongos傳送請求.mongos對應用隱藏分片細節,將請求 到相應資料庫機器 三 片鍵 1.片鍵是作為資料拆分的依據,mongodb依據片鍵將資料拆分 根據機器的數量的新增和刪除,mon...

資料庫簡述

什麼是資料庫?管理資料的系統 安裝某種管理資料的系統 管理的物件本質就是檔案 儲存資料的位置 記憶體 和 硬碟 什麼是系統?執行在硬體基礎上,管理其他軟體 資料庫的組成 庫 用來存放多張表 相當於資料夾 表 包含多條相同結構的記錄 相當於檔案 記錄 包含多個key value鍵值對的一條資料 二進位...

簡述資料庫備份

備份的分類 1.1備份的目地 做災難恢復 對損壞的資料進行恢復和還原 1.2需求的改變 因需求改變而需求還原到改變以前 1.3測試新功能是否可用 根本是否資料庫離線 2.1 冷備 需要關mysql的服務 讀寫請求均不允許開啟狀態下進行 2.3 熱備 備份同時 業務不受影響 根據備份的資料集合範圍 3...