如下命令能够用于登陆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
复制代码
当你以适当角色的用户身份登陆后,能够使用如下命令查看全部数据库数据库
show dbs
复制代码
要开始使用特定的数据库,能够用如下命令bash
use <databaseName>
复制代码
当你想让不一样的用户拥有不一样的权限的时候能够使用如下命令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" } ] });
复制代码
// 列出当前database下全部的集合:
show collections;
db.getCollectionNames();
// 列出当前database下全部的用户
show users;
db.getUsers();
// 列出当前dababase下全部角色
show roles;
复制代码
不一样的角色对应的权限,最直接之处就在于没有权限有些命令就没法执行spa
下面的命令用户建立集合,更详细命令能够查看官方文档code
db.createCollection("collectionName");
复制代码
集合一旦建立以后,下一步就是建立一个或多个文档插入到集合中索引
// 插入单个文档
db.<collectionName>.insert({field1: "value", field2: "value"})
// 插入多个文档
db.<collectionName>.insert([{field1: "value1"}, {field1: "value2"}])
db.<collectionName>.insertMany([{field1: "value1"}, {field1: "value2"}])
复制代码
保存命令可用于更新现有文档或根据传递给它的文档参数插入新文档。若是传递的_id与现有文档匹配,则文档将更新。不然,将建立一个新文档。在内部,保存方法使用插入或更新命令。文档
db.<collectionName>.save({"_id": new ObjectId("123456"), field1: "value", field2: "value"});
复制代码
// 获取全部记录
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();
复制代码
如下是一些管理命令,这些命令可能有助于查找集合详细信息,例如存储大小,总大小和整体统计信息get
// 获取集合的统计信息,好比空间占用,总大小,引擎信息等
db.<collectionName>.stats()
db.printCollectionStats()
//获取集合的延迟统计信息,好比读写的次数,时间等等
db.<collectionName>.latencyStats()
// 获取数据和索引的集合大小
// 集合的大小
db.<collectionName>.dataSize()
// 集合中存储文档的总大小
db.<collectionName>.storageSize()
// 集合数据和索引的总大小(以字节为单位)
db.<collectionName>.totalSize()
// 集合中全部索引的总大小
db.<collectionName>.totalIndexSize()
复制代码