Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

mongo Shell 快速参考

在此页面上

  • mongo shell命令历史记录
  • 命令行选项
  • 命令辅助程序
  • 基本shell JavaScript操作
  • 键盘快捷键
  • 查询
  • 错误检查方法
  • 管理命令助手
  • 打开其他连接
  • 其他
  • 其他资源

警告

以下文档适用于 mongo Shell,包含在 MongoDB Server 下载中。有关新 MongoDB Shell ( mongosh ) 的信息,请参阅mongosh 文档。

要了解这两个 Shell 之间的差异,请参阅mongo shell和 mongosh 的比较。

您可以使用向上和向下箭头键检索以前在mongo shell中发出的命令。 命令历史记录存储在~/.dbshell文件中。 请参阅.dbshell 以了解更多信息。

可以使用多个选项启动mongo shell 。 有关所有可用选项的详细信息,请参阅mongo shell页面。

下表显示了mongo的一些常用选项:

选项
说明
显示命令行选项

启动mongo shell ,而不连接到数据库。

要稍后连接,请参阅打开新连接。

与 JavaScript 文件(即 <file.js> ) mongoshell运行JavaScript 文件后在 中继续。

有关示例,请参阅JavaScript 文件

mongo shell提供各种帮助。 下表显示了一些常见的帮助方法和命令:

帮助方法和命令
说明
help
显示帮助。
显示数据库方法的帮助。
显示有关集合方法的帮助。 <collection>可以是现有集合或不存在集合的名称。
show dbs

打印服务器上所有数据库的列表。

该操作对应于listDatabases命令。 如果部署在访问控制下运行,则该操作会根据用户权限返回不同的值。 有关详细信息,请参阅listDatabases 行为

use <db>
将当前数据库切换为<db>mongo shell变量 db 设置为当前数据库。
show collections
打印当前数据库的所有集合的列表。
show users
打印当前数据库的用户列表。
show roles
打印当前数据库的所有角色(包括用户定义角色和内置角色)的列表。
show profile
打印最近五个耗时1毫秒或更长的操作。 有关更多信息,请参阅有关数据库分析器的文档。
show databases

打印所有可用数据库的列表。

该操作对应于listDatabases命令。 如果部署在访问控制下运行,则该操作会根据用户权限返回不同的值。 有关详细信息,请参阅listDatabases 行为

load()
执行 JavaScript 文件。 有关更多信息,请参阅mongo shell编写脚本

mongo shell为数据库操作提供了JavaScript API

mongo shell 中, db是引用当前数据库的变量。 该变量会自动设置为默认数据库test ,或者在您使用use <db>切换当前数据库时进行设置。

下表显示了一些常见的 JavaScript 操作:

JavaScript 数据库操作
说明
如果在安全模式下运行,则对用户进行身份验证。
coll = db.<collection>

将当前数据库中的特定集合设置为变量coll ,如以下示例所示:

coll = db.myCollection;

您可以使用该变量对myCollection执行操作,如以下示例所示:

coll.find();

查找集合中的所有文档并返回一个游标。

有关更多信息和示例,请参阅db.collection.find()查询文档

有关 shellmongo 中游标处理的信息,请参阅 在 中迭代游标 。mongosh

将新文档插入到集合中。
将多个新文档插入到集合中。
更新集合中的单个现有文档。
更新集合中的多个现有文档。
从集合中删除单个文档。
从集合中删除文档。
删除或完全删除集合。
如果索引不存在,则在集合上创建新索引;否则,操作无效。
使用同一连接返回对另一个数据库的引用,而无需显式切换当前数据库。 这允许跨数据库查询。

有关在shell中执行操作的更多信息,请参阅:

mongo shell提供的大多数键盘快捷键与 bash shell或 Emacs 中的快捷键类似。 对于某些函数, mongo提供了多个键绑定,以适应几种熟悉的范例。

下表列出了mongo shell 支持的击键:

击键
function
向上箭头
previous-history
向下箭头
下一历史记录
房屋
begin-of-line
end-of-line
标签
自动补全
向左箭头
落后字符
右箭头
Forward-Character
Ctrl-向左箭头
落后词
Ctrl-右箭头
forward-word
元向左箭头
落后词
元右箭头
forward-word
Ctrl-A
begin-of-line
Ctrl-B
backward-char
Ctrl-C
exit-shell
Ctrl-D
delete-char(或退出 shell)
Ctrl-E
end-of-line
Ctrl-F
forward-char
Ctrl-G
中止
Ctrl-J
接受行
Ctrl-K
kill-line
Ctrl-L
清屏
Ctrl-M
接受行
Ctrl-N
下一历史记录
Ctrl-P
previous-history
Ctrl-R
反向搜索历史记录
Ctrl-S
forward-search-history
Ctrl-T
转置字符
Ctrl-U
unix-line-discard
Ctrl-W
unix-word-rubout
Ctrl-Y
yank
Ctrl-Z
挂起(作业控制在 Linux 中起作用)
Ctrl-H(即 退格)
向后删除字符
Ctrl-I(即 Tab)
完成
Meta-B
落后词
Meta-C
大写单词
Meta-D
kill-word
Meta-F
forward-word
Meta-L
Downcase-word
Meta-U
upcase-word
Meta-Y
yank-pop
Meta-[Backspace]
backward-kill-word
Meta-<
begin-of-history
Meta->
历史终结

mongo shell中,使用find()findOne()方法执行读取操作。

find()方法返回一个游标对象, mongo shell遍历该对象以在屏幕上打印文档。 默认情况下, mongo打印第一个20 。 mongo shell将提示用户“Type it”以继续迭代下一个 20 结果。

下表提供了mongo shell中的一些常见读取操作:

读取操作
说明

在集合中查找与<query>条件匹配的文档。 如果未指定<query>条件或为空(即{} ),则读取操作将选择集合中的所有文档。

以下示例选择users集合中name字段等于"Joe"的文档:

coll = db.users;
coll.find( { name: "Joe" } );

有关指定<query>标准的更多信息,请参阅指定相等条件。

查找与<query>条件匹配的文档,并仅返回<projection>中的特定字段。

以下示例从集合中选择所有文档,但仅返回name字段和_id字段。 除非明确指定不返回,否则始终返回_id

coll = db.users;
coll.find( { }, { name: true } );

有关指定<projection>的更多信息,请参阅要从查询返回的项目字段。

返回指定<sort order>中的结果。

以下示例从collection中选择所有文档,并返回按name字段升序排序的结果 ( 1 )。使用-1进行降序排列:

coll = db.users;
coll.find().sort( { name: 1 } );
返回与指定<sort order>中的<query>条件匹配的文档。
将结果限制为<n>行。 如果您只需一定数量的行即可获得最佳性能,强烈建议使用此选项。
跳过<n>结果。
返回集合中的文档总数。

返回与查询匹配的文档总数。

count()忽略limit()skip() 。 例如,如果100记录匹配,但限制为10 , count()将返回100 。 这比自己迭代要快,但仍然需要时间。

查找并返回单个文档。 如果未找到,则返回 null。

以下示例选择users集合中的单个文档,其name字段与"Joe"匹配:

coll = db.users;
coll.findOne( { name: "Joe" } );

在内部,findOne() 方法是带有find()limit(1) 方法。

有关更多信息和示例,请参阅查询文档文档。 请参阅查询和投影操作符以指定其他查询操作符。

mongo shell写入方法将写关注直接集成到方法执行中,并返回一个WriteResult()对象,其中包含操作结果,包括任何写入错误和写关注错误。

下表列出了支持数据库管理的一些常用方法:

JavaScript 数据库管理方法
说明
将集合从fromColl重命名为<toColl> 。 请参阅命名限制。
获取当前数据库中所有集合的列表。
删除当前数据库。

另请参阅管理数据库方法以获取方法的完整列表。

您可以在mongo shell中创建新连接。

下表显示了创建连接的方法:

JavaScript 连接创建方法
说明
db = connect("<host><:port>/<dbname>")
打开新的数据库连接。
conn = new Mongo()
db = conn.getDB("dbname")

使用new Mongo()打开与新服务器的连接。

使用连接的getDB()方法选择数据库。

另请参阅打开新连接,详细了解从mongo shell 中打开新连接。

下表显示了一些其他方法:

方法
说明
Object.bsonsize(<document>)
打印 的 BSON 大小(以字节为单位)<document>

请考虑以下参考资料,其中介绍了mongo shell 及其接口:

此外,MongoDB 源代码存储库还包括一个 jstests 目录 其中包含许多 Shellmongo 脚本。

后退

_rand()

来年

版本说明