返回 登录
2

MongoDB初学者最应该学习的十个常用命令

原文10 Most Common Commands for MongoDB Beginners
作者:Ajitesh Kumar
翻译:雁惊寒

摘要:这些命令对任何一个刚开始使用MongoDB的数据库开发者来说都非常有用。以下是译文。

本文列出了MongoDB初学者都应该学习的十个最常用的命令。

1. 登陆MongoDB

下面这个命令用于登录MongoDB数据库。请确保在数据库dbname中存在对应用户的凭据(比如,用户名和密码)。

mongo -u <username> -p <password> --authenticationDatabase <dbname>

2. 显示所有的数据库

一旦用户以适当的角色登录到数据库后,例如 userAdmin 或者 userAdminAnyDatabase,就可以用下面这个命令查看所有的数据库:

show dbs

3. 选择工作数据库

要使用指定的数据库,请执行以下命令:

use databaseName

4. 身份验证与登出数据库

当使用包含dbName的命令切换到另一个数据库时,则需要使用一个有效的数据库用户进行身份验证。可以使用以下命令进行身份验证:

//
// 身份验证
//
db.auth("username", "password");
//
// 登出
//
db.logout()

5. 列出集合、用户、角色等等

下面几个命令可用于检查存在的集合、用户、角色等等

//
// 列出当前数据库中所有的集合
//
show collections;
db.getCollectionNames();
//
// 列出当前数据库中所有的用户
//
show users;
db.getUsers();
//
// 列出所有的角色
//
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匹配现有的文档,则更新文档。否则,将创建一个新文档。在系统内部,“保存”方法要么使用插入命令,要么使用更新命令。

//
// 如果匹配到文档,则更新;如果没有找到对应ID的文档,则插入这个新文档
//
db.<collectionName>.save({"_id": new ObjectId("jhgsdjhgdsf"), field1: "value", field2: "value"});

9. 显示集合中的记录

下面这个命令可用于显示集合中所有的记录:

//
// 获取所有的记录
//
db.<collectionName>.find();
//
// 获取指定数量的记录;下面这个命令将显示10条记录
//
db.<collectionName>.find().limit(10);
//
// 根据id获取记录
//
db.<collectionName>.find({"_id": ObjectId("someid")});
//
// 根据传入的属性值获取指定记录集
//
db.<collectionName>.find({"_id": ObjectId("someid")}, {field1: 1, field2: 1});
db.<collectionName>.find({"_id": ObjectId("someid")}, {field1: 0}); // Exclude field1
//
// 集合中记录的数量
//
db.<collectionName>.count();

10. 管理命令

下面是一些管理命令,它们可用于查看集合的详细信息,例如存储大小、总的大小和整体统计信息等等。

//
// 获取集合统计信息
//
db.<collectionName>.stats()
db.printCollectionStats()
//
// 读写操作延迟的统计,包括平均读、写、及其他一些操作的时间
//
db.<collectionName>.latencyStats()
//
// Get collection size for data and indexes
//
db.<collectionName>.dataSize() // 集合的大小
db.<collectionName>.storageSize() // 集合中文档的总存储大小
db.<collectionName>.totalSize() // 集合及其索引的大小(字节)
db.<collectionName>.totalIndexSize() // 集合中所有索引的大小

就这些了!希望这些命令对于那些刚开始接触MongoDB的人有所帮助。

评论