索引猫鼬时间戳

时间:2017-04-09 08:44:54

标签: mongodb mongoose

我有像这样的猫鼬模式:

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 个答案:

答案 0 :(得分:0)

结果

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

完美无缺。不得不重启数据库服务器几次以使其正常工作。

想知道为什么会这样?