1. 登錄mongodb
以下命令可以用于登錄mongodb數據庫,但是需要保證用戶你聲明的數據庫中存在對應的用戶和密碼
mongo --host <hostName> --port <port> -u <username> -p <password> --authenticationDatabase <dbname> mongo --host 192.168.140.11 -u test -p 123456 --authenticationDatabase test_db 復制代碼
2. 列出所有的數據庫
當你以適當角色的用戶身份登錄后,可以使用以下命令查看所有數據庫
show dbs 復制代碼
3. 選擇要使用的數據庫
要開始使用特定的數據庫,可以用以下命令
use <databaseName> 復制代碼
4. 創建用戶
當你想讓不同的用戶擁有不同的權限的時候可以使用以下命令
use <databaseName> db.createUser({ user: '<username>', pwd: '<password>', roles: [ { role: "readWrite", db: "<databaseName>" } ] }); 例子: use admin db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }); 復制代碼
5. 列出所有的集合,用戶以及角色
// 列出當前database下所有的集合: show collections; db.getCollectionNames(); // 列出當前database下所有的用戶 show users; db.getUsers(); // 列出當前dababase下所有角色 show roles; 復制代碼
不同的角色對應的權限,最直接之處就在于沒有權限有些命令就無法執行
6. 創建集合
下面的命令用戶創建集合,更詳細命令可以查看官方文檔
db.createCollection("collectionName"); 復制代碼
7. 將文檔插入到集合中
集合一旦創建之后,下一步就是創建一個或多個文檔插入到集合中
// 插入單個文檔 db.<collectionName>.insert({field1: "value", field2: "value"}) // 插入多個文檔 db.<collectionName>.insert([{field1: "value1"}, {field1: "value2"}]) db.<collectionName>.insertMany([{field1: "value1"}, {field1: "value2"}]) 復制代碼
8. 保存或者更新文檔
保存命令可用于更新現有文檔或根據傳遞給它的文檔參數插入新文檔。如果傳遞的_id與現有文檔匹配,則文檔將更新。否則,將創建一個新文檔。在內部,保存方法使用插入或更新命令。
db.<collectionName>.save({"_id": new ObjectId("123456"), field1: "value", field2: "value"}); 復制代碼
9. 顯示集合記錄
// 獲取所有記錄 db.<collectionName>.find(); // 獲取指定數量的記錄 db.<collectionName>.find().limit(10); // 根據id獲取記錄 db.<collectionName>.find({"_id": yourId}) // 返回記錄中特定field的值 // 類似返回select field1,field2 from table db.<collectionName>.find({"_id": ObjectId("someid")}, {field1: 1, field2: 1}); // 不返回field1的數據 db.<collectionName>.find({"_id": ObjectId("someid")}, {field1: 0}); // 文檔記錄數 db.<collectionName>.count(); 復制代碼
10. 管理命令
以下是一些管理命令,這些命令可能有助于查找集合詳細信息,例如存儲大小,總大小和總體統計信息
// 獲取集合的統計信息,比如空間占用,總大小,引擎信息等 db.<collectionName>.stats() db.printCollectionStats() //獲取集合的延遲統計信息,比如讀寫的次數,時間等等 db.<collectionName>.latencyStats() // 獲取數據和索引的集合大小 // 集合的大小 db.<collectionName>.dataSize() // 集合中存儲文檔的總大小 db.<collectionName>.storageSize() // 集合數據和索引的總大小(以字節為單位) db.<collectionName>.totalSize() // 集合中所有索引的總大小 db.<collectionName>.totalIndexSize()