Статический метод Мангуста не обновляет документ

#node.js #mongodb #mongoose

Вопрос:

Я создал статический метод для генерации токена для моего клиента. Для данного условия я обновляю тот же документ из статического метода, используя метод updateOne Мангуста.

 const clientSchema = new Schema(
    {
        firstName: Schema.Types.String,
        lastName: Schema.Types.String,
        email: Schema.Types.String,
        lastRequestAt: { type: Schema.Types.Date, default: new Date() },
    },
    { timestamps: true },
);
 

Статический метод:

 clientSchema.statics.findByToken = async function(token) {
    let client = this;
    let decoded;
    let jwtSecret = config.jwt.secret;
    let d = new Date();
    let clientData;
    try {
        decoded = jwt.verify(token, jwtSecret);
        clientData = await client.findOne({
            _id: decoded._id,
        });
            if (
                clientData.lastRequestAt amp;amp;
                clientData.lastRequestAt.getTime()   3600 * 1000 >
                    d.getTime()
            ) {
                await client.updateOne(
                    {
                        _id: decoded._id,
                    },
                    { lastRequestAt: new Date() },
                );
                return clientData;
            } else {
                Logger.log.info('More days passed for the last request of the user');
                return Promise.reject({
                    status: 'TOKEN_EXPIRED',
                    message: 'More days passed for the last request of the user',
                });
            }
    } catch (e) {
        console.log('Error in finding client by token', e.message || e);
        return Promise.reject({ status: 'INVALID_TOKEN', message: 'Cannot decode token' });
    }
};
 

Здесь lastRequestAt должно обновиться. Это прекрасно работает на моем локальном компьютере, в то время как на сервере он не выдает никаких ошибок, но документ также не обновляется в базе данных.
Ниже приведены версии задействованного программного обеспечения/модулей на сервере:

MongoDB: 4.4.2 мангуст: 5.13.3 узел: 14.15.1 ОС: ubuntu 20.04

Комментарии:

1.Он возвращает меня { n: 1, nModified: 1, ok: 1 } , но документ по-прежнему не обновляется. В рамках других альтернатив: — Я пытался {$set: { lastRequestAt: new Date() }} , но это не сработало — В то время как для меня сработало следующее: c.lastRequestAt = new Date(); await c.save();