MongoDB shell 基本操作
阿新 • • 發佈:2021-11-17
MongoDB shell 基本操作
目錄MongoDB bin目錄結構
- mongo:MongoDB 客戶端程式
- mongod:MongoDB 伺服器程式
MongoDB Shell 客戶端
[root@node-01 mongodb-4.2.7]# bin/mongo --host node-01 -u "test" -p "123" --authenticationDatabase
> db # 顯示連線的當前資料庫
test
- 啟動 Shell 客戶端時會連到 MongoDB 伺服器的 test 資料庫,並將資料庫連線賦值給全域性變數 db。這個變數是通過 shell 訪問 MongoDB 的主要入口點
- shell 客戶端本質上是一個 JavaScript 直譯器,可以解釋執行 JavaScript 程式碼
資料庫 CURD 操作
檢視當前資料庫
> db
test
檢視資料庫狀態資訊
> db.stats()
檢視所有資料庫
> show dbs
> show databases
僅顯示非空資料庫
切換資料庫
> use info
建立資料庫
> use test
MongoDB 中不需要顯式的建立資料庫,直接使用 use 切換資料庫,如果資料庫不存在,則建立資料庫,否則切換到指定資料庫
刪除資料庫
> db.dropDatabase()
集合 CURD 操作
建立集合
> db.createCollection("test")
注:在 MongoDB 中不需要顯式的建立集合,在集合中插入資料,就會生成集合。
顯示集合
> show collections
> show tables
刪除集合
> db.test.drop()
插入文件
insertOne 函式:集合插入單個文件
db.collection.insertOne(
<document>,
{
writeConcern: <document>
}
)
- collection:需要替換成真正的集合名稱
- document:需要插入的資料文件
- writeConcern:安全寫級別(目前不考慮,有預設級別)
注:如果 _id 相同,會丟擲錯誤
insertMany 函式:集合插入多個文件(陣列)
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
- collection:需要替換成真正的集合名稱
- document:需要插入的資料文件
- writeConcern:安全寫級別(目前不考慮。有預設級別)
- ordered:指定 mongodb 例項應該執行有序插入還是無序插入(預設值為true)
insert 函式:集合插入1個或多個文件(陣列)
db.collection.insert(
<document or array of documents>,
{
writeConcern: <document>,
ordered: <boolean>
}
)
save 函式:更新集合文件
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
使用 save 的時候,如果插入文件的_id在集合中不存在, 就是插入資料,否則更新資料
刪除文件
deleteOne 函式
db.collection.deleteOne(
<filter>,
{
writeConcern: <document>,
collation: <document>
}
)
deleteMany 函式
db.collection.deleteMany(
<filter>,
{
writeConcern: <document>,
collation: <document>
}
)
remove 函式
remove()方法可以說是deleteOne()、deleteMany()的集合
db.collection.remove(
<query>,
<justOne>
)
- query:篩選符合條件的文件刪除
- justOne:boolean 型別,預設為 false,即刪除所有匹配刪除標準的文件。若要僅刪除一個文件,將其設定為 true
MongoDB 刪除文件,磁碟空間不會釋放。可以使用 db.repairDatabase() 釋放磁碟空間。
官方推薦使用 deleteOne 和 deleteMany