1. 程式人生 > 程式設計 >MongoDB初學者最常用的10個命令

MongoDB初學者最常用的10個命令

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()
複製程式碼