MongoDB 初學者最常用的 MongoDB 命令 [2022]

已發表: 2021-01-06

目錄

使用 MongoDB 進行日誌記錄

以下命令適用於使用 MongoDB 登錄。

mongo -u <用戶名> -p <密碼> –authenticationDatabase <db_name>

注意:用戶必須具有正確的憑據和數據庫名稱才能訪問。

創建數據庫並選擇要使用的數據庫

在 MongoDB 中,“ use”命令是創建新數據庫的第一步。

句法:

使用 db_name

執行時,此命令將為特定名稱創建一個新數據庫。 如果存在具有特定名稱的數據庫,則它將返回現有數據庫。

相同的“使用”命令也用於選擇數據庫並開始使用。

例子:

假設您正在使用數據庫“edudb”開始一個新的教育項目。 那麼命令將是:

>使用教育數據庫

切換到數據庫 edudb

閱讀: MongoDB 真實世界用例:優勢和頂級公司

檢查當前數據庫

您還可以使用命令 db 檢查當前數據庫,如下所示:

>分貝

教育數據庫

您需要在數據庫中至少有一個文件或文檔才能顯示在整個列表中。 您可以輕鬆地使用插入命令來做到這一點。

句法:

> 分貝 文件. 插入({“名稱”:“類”})

顯示所有當前數據庫

您可以使用以下命令通過 show dbs 來檢查當前數據庫:

>顯示數據庫

本地0.53443GB

測試0.12332GB

教育數據庫0.02423GB

在 MongoDB 中,測試作為默認數據庫存在。 默認情況下,所有集合僅存儲在測試中。

您可以使用 MongoDB 命令界面來管理與非 CRUD 操作相關的任務。 該界面使用戶能夠從服務器獲取精確信息、複製當前場景並運行特定的 map-reduce 任務。

還有一些特定的命令可以在當前和管理數據庫中運行。

對於 MondDB 中的當前數據庫,使用以下 db.runCommand():

db.runCommand( { <command> } )

對於 admin 數據庫,使用以下 db.adminCommand():

D b。 adminCommand ( { <command> } )

要創建集合,請使用以下命令:

db.createCollection(“collectionName”);

在集合中插入文檔:

//

// 用於在集合中插入單個文檔

//

db.<collectionName>.insert({field1: “value”, field2: “value”})

//

// 用於在集合中插入多個文檔

//

db.<collectionName>.insert([{field1: “value1”}, {field1: “value2”}])

db.<collectionName>.insertMany([{field1: “value1”}, {field1: “value2”}])

保存和更新文檔

這裡的“保存”命令可以完成這兩個功能,插入一個全新的文檔或更新一個現有的文檔。

db.<collectionName>.save({“_id”: new ObjectId(“jhgsdjhgdsf”), field1: “value”, field2: “value”});

注意:如果有匹配的文檔 ID,則更新; 否則,將創建一個新文檔。

列出用戶、角色和集合

這些命令列出了用戶數量、他們的角色和集合。

//

// 命令列出當前數據庫中的所有集合

//

展示收藏;

db.getCollectionNames();

//

// 命令來自當前數據庫的所有用戶

//

顯示用戶;

db.getUsers();

//

// 列出所有用戶角色的命令

//

顯示角色

顯示集合記錄

//

// 檢索所有記錄的命令

//

db.<collectionName>.find();

//

// 此命令獲取前 10 個結果;

//

db.<collectionName>.find().limit(10);

//

// 此命令按 id 檢索記錄

//

db.<collectionName>.find({“_id”: ObjectId(“someid”)});

//

// 此命令從具有對象的特定集合屬性中獲取值,並分配值為 0 或 1。

//

db.<collectionName>.find({“_id”: ObjectId(“someid”)}, {field1: 1, field2: 1});

db.<collectionName>.find({“_id”: ObjectId(“someid”)}, {field1: 0}); // 排除字段1

//

// 此命令檢查數據庫中的集合計數

//

db.<collectionName>.count();

對於管理命令

此命令允許有關集合詳細信息的信息,包括總大小、存儲和多個統計信息。

//

// 此命令檢索收集統計信息

//

db.<collectionName>.stats()

db.printCollectionStats()

//

// // 此命令檢索讀取和寫入的延遲統計信息以及特定數量的操作

//

db.<collectionName>.latencyStats()

//

// 此命令檢索索引和數據的特定集合大小

//

db.<collectionName>.dataSize() // 獲取集合的大小

db.<collectionName>.storageSize() // 獲取存儲文檔的總大小

db.<collectionName>.totalSize() // 獲取集合數據和索引的總大小(以字節為單位)

db.<collectionName>.totalIndexSize() // 獲取集合中所有索引的總大小

從數據庫註銷:

db.logout()

您可以在 MongoDB 中使用不同類型的命令,首先是:

用戶命令

數據庫操作

1. 用戶命令

聚合命令

姓名描述
總計的在組中執行聚合任務的命令。
數數命令來統計特定的文檔數量。
清楚的用於顯示集合中特定鍵的不同值的命令。
地圖減少在大型數據集中執行 map-reduce 任務聚合的命令。

地理空間命令

姓名描述
地理搜索通過 MongoDB haystack 索引函數執行地理空間查詢的命令。

查詢和寫操作命令

姓名描述
刪除刪除一個或多個文檔的命令。
在視圖中選擇單個或多個文檔的命令。
插入在視圖中插入一個或多個文檔的命令。
更新更新一個或多個文檔的命令。

查詢計劃緩存命令

姓名描述
計劃緩存清除從集合中刪除緩存查詢計劃的命令。
planCacheClearFilters 從集合中清除索引過濾器的命令。
planCacheListFilters 列出集合中的索引過濾器的命令。
planCacheSetFilter 從集合中設置索引過濾器的命令。

2. 數據庫操作

身份驗證問題

姓名描述
認證在驗證用戶名和密碼後啟動經過身份驗證的會話的命令。
隨機數生成一次性密碼以進行身份驗證的命令。
登出命令終止給定的已驗證會話。

用戶管理命令

姓名描述
創建用戶創建新用戶的命令。
刪除用戶刪除特定用戶的命令。
更新用戶更新特定用戶數據的命令。
用戶信息從特定的單個或多個用戶檢索信息的命令。

角色管理命令

姓名描述
創建角色建立特定用戶角色和權限的命令。
丟棄角色從數據庫中刪除特定用戶定義角色的命令。
更新角色更新特定用戶定義角色的命令。

複製命令

姓名描述
應用操作使用當前數據集添加 oplog 條目的命令。
是大師顯示當前副本集中特定用戶的信息以檢查它是否是主用戶的命令。
replSetInitiate 初始化特定新副本集的命令。

分片命令

姓名描述
添加分片添加新分片或分片集群的命令。
listShards 返回預配置分片列表的命令。
移除碎片從集群中刪除特定分片的命令。

會話命令

姓名描述
中止事務中止事務的命令。
結束會話在超時之前使會話過期的命令。
殺死所有會話殺死所有會話的命令
刷新會話刷新空閒會話的命令。
開始會話命令開始一個新的會話。

行政命令

姓名描述
乾淨的表示內部命名空間的命令。
創建創建集合或特定視圖的命令。
降低從當前數據庫中刪除特定集合的命令。
重新索引為特定集合重建所有索引的命令。
關掉命令關閉 mongos 或 mongod 進程。

免費監控命令

姓名描述
設置免費監控它允許用戶在運行時啟用或禁用免費監控。

審計命令

姓名描述
日誌應用消息命令添加或發布帶有當前審核日誌的自定義消息。

命令響應

在每次執行命令時,MongoDB 都會檢索具有特定字段的響應:

場地描述
好的指示命令是成功 (1) 還是失敗 (0)。
操作時間這表示在 MongoDB 中使用 oplog 條目中的時間戳執行操作的特定時間。

如果操作不運行,則不會生成任何 oplog 條目。 然後操作時間返回;

local:從最近的條目到 oplog。

對於多數和可線性化的讀取,來自最近通過 oplog 的多數確認條目的時間戳。

$clusterTime 這定義了訂購特定操作的邏輯時間。

結帳: MongoDB 中的 CRUD 操作

接下來是什麼?

如果您有興趣了解有關大數據的更多信息,請查看我們的 PG 大數據軟件開發專業文憑課程,該課程專為在職專業人士設計,提供 7 多個案例研究和項目,涵蓋 14 種編程語言和工具,實用的動手操作研討會,超過 400 小時的嚴格學習和頂級公司的就業幫助。

從世界頂級大學在線學習軟件開發課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

引領數據驅動的技術革命

IIIT Bangalore 大數據高級證書課程