MongoDB的 TTL 索引

TTL索引是特殊的单字段索引,MongoDB可以用来在一定时间之后或者在一个特定的时钟时间自动删除集合中的文档。对于特定类型的信息(例如机器生成的行为数据、日志以及会话信息,只需要将信息存储在数据库中一定时间)而言,数据过期是非常有效的。

可以使用db.collection.createIndex()方法和expireAfterSeconds方法来在某个字段(字段值为date或包含date值的数组上)创建TTL索引。

例如,如果想要在eventlog集合上的

继续阅读

【译】MongoDB中的术语(三)

平安夜快乐~这一周终于把MongoDB中的术语这一个系列翻译完了。原文在MongoDB的官方文档。如果希望看到之前的翻译,可以直接跳到最后,点击相关链接。下周重新开始 [paper 阅读] 模块~

ppps: 这周完成转正流程了,还是挺感慨的。等到正式转正那一周再来写些碎碎念吧。特别特别感谢常老师和遇到的所有领导及同事们~~~接下来也要继续努力啦!

  • ObjectId:一个特殊的12位BSON类型,保证集合内的唯一性。ObjectId是基于时间戳、机器ID、进程ID以及本地进程自增长数生成的数。MongoDB使用ObjectId值作为_id字段的默认值。

继续阅读

【译】MongoDB 中的术语(二)

  • idempotent:幂等的,一个给定相同输入生成相同结果的操作的质量,无论运行一次还是运行多次。
  • index:一个优化查询的数据结构。
  • init script:一个简单的shell脚本,一般保存在/etc/rc.d或者/etc/init.d目录下,用于系统初始化进程启动、重启或者停止后台进程。
  • initial sync:从一个现有的复制集成员中将数据复制到新复制集成员的复制集操作。
  • intent lock

继续阅读

【译】MongoDB 中的术语(一)

  • $cmd:一个特殊的虚拟集合展示MongoDB的数据库命令。
  • _id:每个MongoDB的文档中都要求的一个字段,_id字段必须有一个唯一值。我们可以将其看做文档的主键。如果我们创建一个没有_id字段的新文档,MongoDB将会自动创建该字段并且赋予一个唯一的BSON ObjectId
  • accumulator:一个在聚合框架中的表达式,用来维护聚合管道中文档之间的状态。
  • action:用户可以在资源上执行的操作,行为和资源组合起来就可以构成权限。
  • admin

继续阅读

【译】管理MongoDB进程


MongoDB作为一个标准的程序运行。我们可以在命令行通过发送mongod命令和指定选项来启动MongoDB。MongoDB也可以作为一个Windows服务来运行。

下面的示例假设包含mongod进程的目录已经在我们的系统目录中。mongod进程是运行在一个单一服务器上的主要数据库进程。mongos提供了一个与客户端部分一致的MongoDB接口。mongo二进制提供了管理的shell。

本文档讨论了mongod进程,但是本文档的一些部分也适用于mongos实例。

启动mongod进程

默认地,MongoFB监听来自客户端在27017端口上的连接,并且将数据存储在/data/db目录下。

在Windows下,该路径为我们启动MongoDB的驱动上。例如,如果我们没有指定--dbpath,在C:\驱动启动一个MongoDB服务器,会将所有的数据文件存储在C:\data\db上。

如果使用所有默认的配置启动MongoDB,可以在系统shell中使用下面的命令:

mongod

继续阅读