mongo Shell 快速参考
在本页面
[success] Note
下面的文档是MongoDB服务器下载.中包含的
mongo
shell。有关新的MongoDB Shell ,mongosh的信息,请参考mongosh文档。要了解这两种shell的区别,请参阅Comparison of the mongo Shell and mongosh.
mongo Shell命令历史
您可以使用上下箭头键检索在 mongo
shell中发布的先前命令。 命令历史记录存储在**〜/ .dbshell**文件中。 有关更多信息,请参见.dbshell 。
命令行选项
mongo
shell可以使用许多选项启动。 有关所有可用选项的详细信息,请参见mongo shell 页面。
下表显示了mongo的一些常用选项:
选项 | 说明 |
---|---|
显示命令行选项 | |
在不连接数据库的情况下启动mongo shell。 要稍后连接,请参阅Opening New Connections。 | |
与JavaScript文件(即<file.js>])结合使用,以在运行JavaScript文件后在mongo shell中继续。 有关示例,请参见 JavaScript file。 |
命令助手
mongo
shell提供了各种帮助。下表显示了一些常见的帮助方法和命令:
帮助方法和命令 | 描述 |
---|---|
help() | 打印当前数据库的列表 |
打印当前数据库的所有角色的列表,包括用户定义的角色和内置角色。 | |
db. | 打印耗时1毫秒或更长时间的五个最新操作。 有关更多信息,请参见数据库分析器上的文档。 |
show dbs | 打印所有可用数据库的列表。 该操作对应于 |
use< | 将当前数据库切换到< |
show collections | 打印当前数据库的所有集合的列表。 另可参考: show collections |
show users | 打印当前数据库列表 |
show roles | 打印当前数据库的所有角色的列表,包括用户定义角色和内置角色。 |
show profile | 打印耗时1毫秒或更长时间的五个最新操作。 有关更多信息,请参见 database profiler。 |
show databases | 打印所有可用数据库的列表。 该操作对应于 listDatabases 命令。 如果部署使用访问控制运行,则该操作将根据用户权限返回不同的值。 有关详细信息,请参见 listDatabases。 |
load() | 执行一个JavaScript文件。 有关更多信息,请参见 Write Scripts for the mongo Shell。 |
Shell基本JavaScript操作
mongo
shell提供了用于数据库操作的JavaScript API 。
在mongo shell中,db是引用当前数据库的变量。该变量自动设置为默认数据库测试,或者在**use <db
>**切换当前数据库时设置。
下表显示了一些常见的JavaScript操作:
JavaScript数据库操作 | 说明 |
---|---|
如果以安全模式运行,请对用户进行身份验证。 | |
coll = db.< | 将当前数据库中的特定集合设置为变量coll,如以下示例所示: coll = db.myCollection; 您可以使用变量在myCollection上执行操作,如以下示例所示: coll.find(); |
查找集合中的所有文档并返回一个游标。 有关更多信息和示例,请参见db.collection.find()和查询文档。 有关在mongo shell中处理游标的信息,请参阅在mongo Shell中迭代游标。 | |
将新文档插入集合中。 | |
将多个新文档插入集合中。 | |
更新集合中的单个现有文档。 | |
更新集合中的多个现有文档。 | |
插入新文档或更新集合中的现有文档。 | |
从集合中删除单个文档。 | |
从集合中删除多个文档 | |
完全删除或除去集合。 | |
如果索引不存在,则在集合上创建一个新索引;否则,该操作无效。 | |
使用相同的连接返回对另一个数据库的引用,而无需显式切换当前数据库。 这允许跨数据库查询。 |
有关在shell中执行操作的更多信息,请参见:
键盘快捷键
shell提供了大多数键盘快捷键,类似于bash shell或Emacs中的快捷键。 对于某些功能,mongo
提供了多个键绑定,以适应几种熟悉的范例。
下表列举了 mongo
shell支持的按键:
按键 | 功能 |
---|---|
Up-arrow | 以前的历史 |
Down-arrow | 下一个历史 |
Home | 行起点 |
End | 行尾 |
Tab | 自动完成 |
Left-arrow | 后退字符 |
Right-arrow | 向前字符 |
Ctrl-left-arrow | 后向词 |
Ctrl-right-arrow | 前向词 |
Meta-left-arrow | 后向词 |
Meta-right-arrow | 前向词 |
Ctrl-A | 上线 |
Ctrl-B | 向后字符 |
Ctrl-C | 退出 |
Ctrl-D | 删除字符(或退出) |
Ctrl-E | 行结束 |
Ctrl-F | 转发字符 |
Ctrl-G | 中止 |
Ctrl-J | 接受线 |
Ctrl-K | 杀死线 |
Ctrl-L | 清除屏幕 |
Ctrl-M | 接受线 |
Ctrl-N | 下一个历史记录 |
Ctrl-P | 以前的历史记录 |
Ctrl-R | 反向搜索历史 |
Ctrl-S | 正向搜索历史 |
Ctrl-T | 转置字符 |
Ctrl-U | 丢弃Unix线 |
Ctrl-W | Unix单词清除 |
Ctrl-Y | 拉动 |
Ctrl-Z | 挂起(作业控制在Linux中有效) |
Ctrl-H (i.e. Backspace) | 向后删除字符 |
Ctrl-I (i.e. Tab) | 完成 |
Meta-B | 后退词 |
Meta-C | 大写词 |
Meta-D | 杀死命令 |
Meta-F | 转发字 |
Meta-L | 小写词 |
Meta-U | 大写词 |
Meta-Y | yank-pop |
Meta-[Backspace] | 撤销杀死命令 |
Meta-< | 历史开始 |
Meta-> | 历史结束 |
查询
在mongo shell中,使用find()
和findOne()
方法执行读取操作。
find()
方法返回一个游标对象,mongo
shell对其进行迭代以在屏幕上打印文档。 默认情况下,mongo
打印前20个结果。mongo
shell将提示用户“输入”以继续迭代接下来的20个结果。
下表提供了mongo shell中的一些常见读取操作:
读取操作 | 说明描述 |
---|---|
在集合中找到符合< | |
查找符合< | |
以指定的< | |
以指定的< | |
将结果限制为< | |
跳过< | |
返回集合中的文档总数。 | |
有关更多信息和示例,请参阅Query Documents 。 请参阅Query and Projection Operators。
错误检查方法
mongo shell write方法将Write Concern直接集成到方法执行中,并返回一个**WriteResult()**对象,该对象包含操作结果,包括所有写错误和写关注错误。
行政命令助手
下表列出了一些支持数据库管理的常用方法:
JavaScript数据库管理 | 方法说明 |
---|---|
将集合从fromColl重命名为< | |
获取当前数据库中所有集合的列表。 | |
删除当前数据库。 |
另请参见administrative database methods以获取方法的完整列表。
打开其他连接
您可以在mongo shell中创建新的连接。 下表显示了创建连接的方法:
JavaScript连接创建方法 | 说明 |
---|---|
db = connect("< | 打开一个新的数据库连接。 |
conn = new Mongo() db = conn.getDB("dbname") | 使用新的Mongo()打开与新服务器的连接。 使用连接的getDB()方法选择数据库。 |
另请参阅 Opening New Connections以获取有关从mongo shell打开新连接的更多信息。
多样式
下表显示了一些其他方法:
方法 | 描述 |
---|---|
Object.bsonsize(< | Prints the BSON size of a < |
其他资源
考虑以下解决mongo shell及其接口的参考资料:
另外,MongoDB源代码存储库包括一个jstests目录,该目录包含许多mongo shell脚本。
译者:王恒
校对:杨帅
最后更新于