MongoDB是基于分布式文件存儲的數(shù)據(jù)庫恢筝,介于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫之間蔫仙,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富料睛,最像關(guān)系數(shù)據(jù)庫的。由C++編寫摇邦,入門簡單恤煞,使用靈活,可以結(jié)合Node使用施籍,所以對前端程序員也是極其友好的居扒。
-
安裝(以windows操作系統(tǒng)為例)
- 官網(wǎng)地址,根據(jù)自己的操作系統(tǒng)下載完之后安裝即可丑慎,安裝過程中可以自定義安裝目錄喜喂,默認(rèn)裝在C盤瓤摧。
-
創(chuàng)建數(shù)據(jù)目錄
- MongoDB將數(shù)據(jù)存儲在db目錄下,但這個目錄不會自動創(chuàng)建夜惭,需要手動創(chuàng)建。(注意:數(shù)據(jù)目錄應(yīng)該放在安裝的根目錄下)以C盤為例铛绰,在C盤下創(chuàng)建data文件夾诈茧,data下創(chuàng)建db文件夾。
查看MongoDB版本
mongo -version
1. 啟動數(shù)據(jù)庫
mongod
2. 連接數(shù)據(jù)庫(再開啟一個終端)
mongo
基于CRUD的基本命令使用
1. 顯示所有數(shù)據(jù)庫
show dbs
2. 切換到指定數(shù)據(jù)庫
use `數(shù)據(jù)庫名稱`
- 如果沒有會自動創(chuàng)建捂掰,但是再執(zhí)行
show dbs
的時不會顯示敢会,只有插入數(shù)據(jù)以后才顯示。
3. 查看當(dāng)前所在的數(shù)據(jù)庫
db
4. 創(chuàng)建集合
db.createCollection(name, options)
- name為集合名
- options為可選的對象參數(shù)这嚣,包括size鸥昏,max等屬性
5. 顯示當(dāng)前數(shù)據(jù)庫的所有集合
show collections
6. 刪除某個集合
db.Collection_Name.drop()
7. 插入數(shù)據(jù)
db.Collection_Name.insert(document)
-
Collection_Name
為集合名,如果當(dāng)前數(shù)據(jù)庫中沒有該集合姐帚,MongoDB 會自動創(chuàng)建并插入文檔吏垮。 - Use:
- db.userInfo.insertOne({"name": "Jack", "age": 18})
8. 更新數(shù)據(jù)
db.Collection_Name.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
- query 查詢條件
- update 更新后的數(shù)據(jù)
- 參數(shù)3 可選
-
upsert
可選,這個參數(shù)的意思是罐旗,如果不存在update的記錄膳汪,是否插入newObj,true為插入九秀,默認(rèn)是false遗嗽,不插入。 -
multi
可選鼓蜒,mongodb 默認(rèn)是false,只更新找到的第一條記錄痹换,如果這個參數(shù)為true,就把按條件查出來多條記錄全部更新 -
writeConcern
可選,拋出異常的級別都弹。
-
9. 查詢數(shù)據(jù)
db.Collection_Name.find(query, projection)
query 可選娇豫,查詢條件
projection 可選,使用投影操作符指定返回的鍵畅厢。查詢時返回文檔中所有鍵值锤躁, 只需省略該參數(shù)即可(默認(rèn)省略)
-
如果參數(shù)為空,讀取到的是所有數(shù)據(jù)
以易讀的方式來讀取數(shù)據(jù)
db.Collection_Name.find().pretty()
- Use:
- db.userInfo.find()
- db.userInfo.find().prety()
- Use:
10. 多條件查詢
- AND
db.Collection_Name.find({key1: value1, key2 :value2}).pretty()
- OR
db.Collection_Name.find(
{
$or: [
{key1: value1}, {key2: value2}
]
}
).pretty()
- AND 和 OR聯(lián)合使用
db.col.find({key1: value1}, $or: [{key2: value2}, {key3: value3}]}).pretty()
11. 刪除數(shù)據(jù)
db.collection.remove(
<query>,
<justOne>
)
如果 MongoDB 是 2.6 版本以后的或详,語法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
- query :(可選)刪除的文檔的條件系羞。
- justOne : (可選)如果設(shè)為 true 或 1,則只刪除一個文檔霸琴。
- writeConcern :(可選)拋出異常的級別椒振。
以上為基本的CRUD使用。