Схема Mongoose, как изменить date.now при обновлении БД

Как мы можем изменить значение updated_at при каждом обновлении данных БД?

Считайте, что это моя схема мангуста,

const mongoose = require('mongoose')

const locationDataSchema = new mongoose.Schema({
    locationName: String,
    location: [{
        lat: Number,
        lng: Number
    }],
    news: [ {
        author: String, //or number
        title: String,
        description: String,
        url: String,
        urlToImage: String
    }],
    updated_at: {
        type: Date,
        default:  Date.now
    }
})

Из моего смутного чтения документов Mongoose я сделал что-то вроде этого

locationDataSchema.post('save', (next) => {
    console.info("here")
    this.locationName = this.locationName.toLowerCase();
    this.updated_at = Date.now()
 })

Но это не вызывается всякий раз, когда я создаю/обновляю что-то в своей схеме мангуста.

Вопрос: Может ли кто-нибудь помочь мне понять, как я могу изменить

updated_at = Date.now()

Всякий раз, когда пользователь обновляет данные в БД (аналогично изменению имени местоположения на нижний регистр)

🤔 А знаете ли вы, что...
Node.js позволяет создавать RESTful API с помощью библиотеки Restify.


435
1

Ответ:

Решено

Текущая версия Mongoose (v4.x) имеет отметку времени как встроенную опцию схемы:

var mySchema = new mongoose.Schema( {name: String}, {timestamps: true} );

Эта опция добавляет свойства createdAt и updatedAt, которые имеют отметку времени с датой и делают всю работу за вас. Для получения дополнительной информации см.

https://mongoosejs.com/docs/guide.html#timestamps