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

1. 登陸mongodb

如下命令能夠用於登陸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. 選擇要使用的數據庫

要開始使用特定的數據庫,能夠用如下命令bash

use <databaseName>
複製代碼

4. 建立用戶

當你想讓不一樣的用戶擁有不一樣的權限的時候能夠使用如下命令ui

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;
複製代碼

不一樣的角色對應的權限,最直接之處就在於沒有權限有些命令就沒法執行spa

6. 建立集合

下面的命令用戶建立集合,更詳細命令能夠查看官方文檔code

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. 管理命令

如下是一些管理命令,這些命令可能有助於查找集合詳細信息,例如存儲大小,總大小和整體統計信息get

// 獲取集合的統計信息,好比空間佔用,總大小,引擎信息等
db.<collectionName>.stats()
db.printCollectionStats()

//獲取集合的延遲統計信息,好比讀寫的次數,時間等等
db.<collectionName>.latencyStats()

// 獲取數據和索引的集合大小
// 集合的大小
db.<collectionName>.dataSize()
// 集合中存儲文檔的總大小
db.<collectionName>.storageSize()
// 集合數據和索引的總大小(以字節爲單位)
db.<collectionName>.totalSize()
// 集合中全部索引的總大小
db.<collectionName>.totalIndexSize()
複製代碼
相關文章
相關標籤/搜索