一、 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...