Возможно, мне не хватает чего-то очевидного, но я прочитал документацию. У меня уже есть коллекция. С помощью 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});
Как вы воссоздали эти записи? Если бы они не пошли через mongoose (а через mongoDB client / cli), у них не было бы этих полей. Это мангуст специфический.
И создаются, когда вы создаете новую модель и сохраняете ее:
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
Ой! Я был идиотом. 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});