_id
键的值默认是 ObjectId
类型,在插入文档的时候,如果用户不设置文档的 _id
值的话,MongoDB 会自动生成一个唯一的 ObjectId
值进行填充 。
数据库文件MongoDB 在 3.2 版本已经将 WiredTiger 作为默认的存储引擎 。其作为存储引擎的时候,数据库会有以下存储文件:
collection-*.wt
: 存储集合的数据index-*.wt
: 存储索引的数据WiredTiger
: 存储基本配置信息WiredTiger.wt
: 存储所有其他集合的元数据信息WiredTiger.lock
: 存储进程 ID , 用于防止多个进程连接同一个 WiredTiger 数据库WiredTiger.turtle
: 存储WiredTiger.wt
的元数据信息journal
: 存储数据库的写日志
使用技巧对于 MongoDB 提供的功能,shell 内置了帮助文档,可以输入
help
命令进行访问,使用 db.help()
可以查看数据库级别的帮助文档,使用 db.foo.help()
可以查看集合级别的帮助文档 。在 shell 中使用函数之前,在不使用括号的情况下输入函数名 , 这样会打印出函数的源代码,这是一个可以查看函数具体行为的好方法 。
执行脚本shell 不止可以直接执行 JavaScript 的脚本代码 , 还可以用于执行 JavaScript 的脚本文件,简单执行
mongo script.js
即可 。如果已经进入到 shell 中,可以使用
load()
函数加载 JavaScript 脚本文件 。创建 .mongorc.js 文件对于需要频繁被加载的脚本,可以将它们添加到
.mongorc.js
中,此文件会在启动 shell 时自动运行 。在更实际一些的场景中 , 使用此脚本可以设置全局变量 , 或者为长名称设置一个简短的别名,也可以重写内置函数 。
定制提示信息通过将
prompt
变量设置为一个字符串或函数,可以重写默认的 shell 提示,如下示例:prompt = function() {if (typeof db == 'undefined') {return '(nodb)> ';}// 检查最后的数据库操作try {db.runCommand({getLastError: 1});} catch (e) {print(e);}return db+"> ";};
提示函数应该返回一个字符串,通常应该包含对 getLastError
的调用,这样可以捕获输入时的错误 , 并在 shell 断开连接时自动重新连接 。编辑复杂变量使用 shell 时,编辑多行的时候不能再编辑前面的行,这对于较大的代码块或对象非常不友好 。
为此 , 可以在 shell 中设置
EDITOR
变量,则可以使用 edit varname
的方式编辑一个变量,完成更改后只需保存并退出编辑器,变量将被重新解析并加载回 shell 中 。不便使用的集合名称大多数情况下可以使用
db.collectionName
语法来获得一个集合的内容 , 但如果集合名称是保留字或是无效的 JavaScript 属性名称时,那么此方法就不能正常工作了 。对于上述的情况,可以使用
db.getCollection()
的方式绕过无效属性 。【MongoDB - 入门指南】
推荐阅读
- 古荒遗迹新手入门少走弯路
- MongoDB导入导出备份数据
- MAUI新生-XAML语法基础:语法入门Element&Property&Event&Command
- 无期迷途新手入门少走弯路
- ubantu18.04@Intel 82545EM 【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机
- 关于入门深度学习mnist数据集前向计算的记录
- 四十 Java开发学习----MyBatisPlus入门案例与简介
- 怎么下载PS(ps入门教程零基础)
- 将java装进u盘指南
- 两种 .Net Core 3.0 对 MongoDB 的多条件查询操作