Использование параметра временных меток мангуста не создает свойства

Возможно, мне не хватает чего-то очевидного, но я прочитал документацию. У меня уже есть коллекция. С помощью 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});
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
1
0
3 293
2

Ответы 2

Как вы воссоздали эти записи? Если бы они не пошли через 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});

Другие вопросы по теме