我可能缺少明显的东西,但是已经阅读了docs。我有一个现有的收藏集。我使用Robo3T删除了它。在我的脚本中,用尽了Node,我定义了添加时间戳的架构选项,如下所示。我运行我的应用程序。集合被创建。但是,当我通过Robo查看时,没有时间戳记。其他一切都如我所料。索引已创建。字段被填充。
我期望另外两个属性:createdAt和updatedAt。
我正在使用猫鼬5.2.7。
const categorySchema = mongoose.Schema(
{
value: String,
recordName: String,
sourceId: Number,
targetId: Number,
requestParameters: Object,
magentoResponse: Object
},
{
autoIndex: true
},
{
timestamps: true
}
);
categorySchema.index({sourceId: 1}, {unique: true});
categorySchema.index({targetId: 1, recordName: 1}, {unique: true});
答案 0 :(得分:1)
哦!我是个白痴。 autoIndex和时间戳应该在同一块中。我是个白痴!
应该是:
const categorySchema = mongoose.Schema(
{
value: String,
recordName: String,
sourceId: Number,
targetId: Number,
requestParameters: Object,
magentoResponse: Object
},
{
autoIndex: true,
timestamps: true
}
);
categorySchema.index({sourceId: 1}, {unique: true});
categorySchema.index({targetId: 1, recordName: 1}, {unique: true});
答案 1 :(得分:0)
您是如何重新创建这些记录的?如果他们不使用猫鼬(而是通过mongoDB client / cli),那么他们将没有这些字段。这些是mongoose specific。
并在创建新模型并保存时创建:
var thingSchema = new Schema({..}, { timestamps: { createdAt: 'created_at' } });
var Thing = mongoose.model('Thing', thingSchema);
var thing = new Thing();
thing.save(); // `created_at` & `updatedAt` will be included