? Mongodb 是一個文檔集合數(shù)據(jù)庫,存儲數(shù)據(jù)格式為: 庫 -> 集合(Collection) -> JSON格式文檔(Documents) -> JSON 文檔中的每個 Key 為 Field
其中每個格式名稱對標(biāo)關(guān)系型數(shù)據(jù)庫的是: 庫對應(yīng)的就是庫,Collection 對應(yīng)的是表,每行 Document 對應(yīng)的是表中的每行數(shù)據(jù), 每個 Field 對應(yīng)的就是關(guān)系型數(shù)據(jù)庫中的"字段";但是它與關(guān)系型數(shù)據(jù)庫不同的是,它的每個 Document 即表中的字段,可以不同,這也就成了它好擴(kuò)展的特點。
1、安裝
到 官網(wǎng)下載 地址選擇要對應(yīng)系統(tǒng)環(huán)境的版本下載,其中有兩種版本區(qū)分,社區(qū)版與企業(yè)版,本次使用的是社區(qū)版環(huán)境是在 Windows 中做的一個安裝,直接下的 MSI 格式的安裝包,界面化點擊即可。
-
配置環(huán)境變量
在所選擇的 mongodb 安裝目錄之中,進(jìn)入到安裝目錄的 bin 文件夾,拷貝全目錄名,配置到環(huán)境變量中的 Path 之中,本例中是將其安裝在了 D 盤的 soft 目錄下,所以配置在 Path 中的內(nèi)容如下
D:\soft\mongodb\bin -
服務(wù)啟動
其實如果你是用的 Windows 的 msi 安裝包,在安裝完之后是默認(rèn)啟動了的
1、通過已安裝的服務(wù),界面啟動
可以在運行窗口(win+R) ,輸入 services.msc 回車呼出服務(wù)控制窗口,在里面可以找到 MongoDB Server 這個服務(wù),你可以點擊右鍵選擇啟動即可。
2、通過 net 命令啟動
在 Mongodb 服務(wù)關(guān)閉的情況下可以在運行窗口(win+R) , 輸入以下命令即可啟動:
net start mongodb3、通過指定配置文件啟動(需要配置好環(huán)境變量)
在 mongodb 的安裝目錄,bin 目錄下有服務(wù)啟動程序 —— mongod.exe、客戶端啟動程序 —— mongo.exe,mongodb 配置文件 —— mongod.cfg(安裝時設(shè)置的配置都在這),打開 CMD 窗口,輸入:
mongod --config D:\soft\mongodb\bin\mongod.cfg -
mongodb 命令行使用
在 CMD 窗口中輸入,mongo 即可啟動 mongodb 的 shell 程序, 可看到如下信息,鏈接到默認(rèn)端口:27017
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("91cb60c2-e828-4a2b-af57-4ccea51a6a9b") }
MongoDB server version: 4.0.10
Server has startup warnings:
2019-07-19T10:26:25.869+0800 I CONTROL [initandlisten]
2019-07-19T10:26:25.869+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-07-19T10:26:25.869+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-07-19T10:26:25.869+0800 I CONTROL [initandlisten]
2、使用
-
創(chuàng)建庫與表
創(chuàng)建數(shù)據(jù)庫,這里和常見的關(guān)系數(shù)據(jù)庫一樣,需要建立自己的數(shù)據(jù)空間(庫),Mongodb 的設(shè)計是偏向于程序員的,建庫、建立集合、修改文檔都很有意思,為什么這么說,是因為在常見的關(guān)系型數(shù)據(jù)庫中當(dāng)你要使用的庫或者表不存在的時候,是會直接提醒你該表或者庫不存在,然而 mongodb 的做法卻是當(dāng)你要使用的庫、表不存在時,它直接幫你創(chuàng)建好,這種方式雖然方便,但是使用不當(dāng)會有很大的隱患!
-
創(chuàng)建一個 mongodbtest 庫: use mongodbtest
-- 輸入命令后的結(jié)果 > use mongodbtest switched to db mongodbtest在此你從提示語之中壓根看不出來 mongodbtest 這個庫是之前不存在的,輸入命令: db 可查看當(dāng)前所在的庫
> db mongodbtest 創(chuàng)建一個名為 jsonval 的集合: db.jsonval
-
向集合(Collection) jsonval 插入數(shù)據(jù)
插入一行數(shù)據(jù)
db.jsonval.insertOne({"name":"Tony","age":25,"habby":"Have a haircut"})插入多行數(shù)據(jù)
db.jsonval.insertMany([{"name":"達(dá)芬奇","age":67,"habby":"繪畫、音樂、建筑、數(shù)學(xué)、幾何學(xué)。。。"},{"name":"拉斐爾","age":37,"habby":"繪畫"}])
-
-
查詢數(shù)據(jù)
無條件查找數(shù)據(jù), 返回該 Collection 的所有數(shù)據(jù)
db.jsonval.find()查找指定條件的數(shù)據(jù)
db.jsonval.find({"name":"Tony"}) -- 查找指定條件一行的內(nèi)容 db.jsonval.findOne({"age":25})查找指定區(qū)間條件的數(shù)據(jù), 查找年齡大于20,小于37的數(shù)據(jù)
db.jsonval.find({"age":{"$gt":20,"$lt":37}}) -
修改數(shù)據(jù)
修改單條數(shù)據(jù)
db.jsonval.updateOne({"name":"Tony"},{$set:{"age":30}})修改多條數(shù)據(jù)
db.jsonval.updateMany({"age":25},{$set:{"age":23}})修改,還可以在原有的基礎(chǔ)上增加一個不存在的字段
db.jsonval.updateMany({"age":23},{$set:{"age":25,"country":"中國"}}) -
刪除數(shù)據(jù)
帶條件刪除數(shù)據(jù)
db.jsonval.remove({"name":"Tony"}) db.jsonval.remove({"name":"Mark","age":25})刪除全部數(shù)據(jù)
db.jsonval.remove({})