MongoDB
Mongodb 屬於 NoSQL,哪些適合用 NoSQL 存取
各種不
- 系統儀表板、聊天室、即時股票資訊、遊戲的個人狀態列
Mongo 侷限
- Document 不可超過 16M
安裝 Mongo、GUI
開啟 mongo 資料庫
- 新增存放 Mongo DB 的 data 資料夾、log 檔案
- mkdir data
- touch data/mongodb.log
- 執行指令
1
2$ mongod --dbpath [data資料夾] --logpath [log資料夾]
$ mongod --dbpath /Users/hazel/vhost/side-project/mongodb/data --logpath /Users/hazel/vhost/side-project/mongodb/data/mongo.log
常用指令
資料庫顯示1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53mongo # 進入 Mongo 指令
show dbs # 顯示資料庫
# 切換資料庫
use [資料庫名稱]
use hotels # 切換資料庫 hotels
show collections # 顯示 DB 內所有的 Collections
# 新增 Collections rooms
db.createCollection(collection名稱);
db.createCollection('rooms');
# 新增單筆資料 insertOne
db.rooms.insertOne(
{ "name": "單人房", "price": 1200, "rating": 4.5 }
)
# 新增多筆資料 insertMany
db.rooms.insertMany(
[
{
"rating": 4.2,
"price": 4500,
"name": "豪華單人房"
},
{
"rating": 4.5,
"price": 3000,
"name": "雙人房"
}
]
)
# updateOne 修改部分欄位,第一個參數 filter,第二個參數:變更值
db.rooms.updateOne(
{ _id: ObjectId(6250303fc1795946f9371a7f)},
{ $set: { name: "修改成超級豪滑雙人房" } }
)
# updateMany
db.rooms.updateMany(
{ type: "group" }
{ $set: { content: "測試" }}
)
# replaceOne 覆蓋全部欄位(替換整個Document),updateOne: 允許更新欄位
# 替換整個文檔:replaceOne、replaceMany
db.rooms.replaceOne(
{ "_id":ObjectId("621edf99a20aa7506a116f9a") },
{ "name": "Hazel" }
)
# 刪除 Collection 所有資料
db.rooms.deleteMany({})
# 刪除多個文件 deleteMany (filter)
db.rooms.deleteMany(
{ rating: { $gte: 4.3 }
})
find 用法
- $eq: 等於
- $ne: 不等於
- $gt: 大於
- $lt: 小於
- $gte: 大於等於
- $lte: 小於等於
- $in: 存在某個值
- $nin: 不存在某個值
邏輯運算子 or 、 and
- $or: find({ $or: [{}, {}] })
- $and: find({ $and: [ {}, {}]})
1 |
|
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!