1. 程式人生 > 其它 >MongoDB shell 基本操作

MongoDB shell 基本操作

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