索引猫鼬时间戳

Posted

技术标签:

【中文标题】索引猫鼬时间戳【英文标题】:Indexing mongoose timestamps 【发布时间】:2017-09-04 09:53:47 【问题描述】:

我有一个像这样的猫鼬模式:

let PictureSchema = mongoose.Schema(
  ...
  ...
, timestamps: true)

PictureSchema.index("createdAt": 1);
PictureSchema.index("updatedAt": 1);

我正在尝试将字段“createdAt”和“updatedAt”编入索引。使用时

PictureSchema.index("createdAt": 1);
PictureSchema.index("updatedAt": 1);

它不起作用,除“_id_”之外的所有其他索引也停止工作。

我通过使用 mongoose-timestamp 插件得到了这个工作的变体,如下所示:

PictureSchema.plugin(timestamps, 
  createdAt: 
    name: 'createdAt',
    type: Date,
    index: true
  ,
  updatedAt: 
    name: 'updatedAt',
    type: Date,
    index: true
  
)

但是我对这个插件的问题是它不记录UTC时间而是系统时间。解决我的问题的方法也是让 mongoose-timestamp 记录 UTC 时间,但最好我更愿意索引内置时间戳提供的字段。

【问题讨论】:

【参考方案1】:

结果

 PictureSchema.index("createdAt": 1);
 PictureSchema.index("updatedAt": 1);

完美运行。必须重新启动数据库服务器几次才能使其正常工作。

想知道这是为什么?

【讨论】:

以上是关于索引猫鼬时间戳的主要内容,如果未能解决你的问题,请参考以下文章

只显示最近的猫鼬时间戳?

开玩笑期望猫鼬时间戳

Mongoid 时间戳索引

如何从具有最早和最新时钟时间的时间戳索引数组中返回时间戳?

当时间戳未被归类为索引时,如何按时间戳对数据帧进行切片?

在时间戳上创建索引以优化查询