Изменить объект Mongoose в почтовых крючках - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу изменить объект mongoose в хуках post, например post findOneAndUpdate, но, поскольку это объект mongoose, я не могу добавить к нему никакого свойства, как в следующем примере

MyShema.post('findOneAndUpdate', function(doc) {
    doc["new_field"] = 2;
    return doc;
});

у этого возвращенного документа нет new_fieldкак мне это сделать?

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

То, что я нашел работающим, это свойство трансформации мангуста, которое делает что-то похожее

    if (!Myschema.options.toObject) Myschema.options.toObject = {};
    Myschema.options.toObject.transform = (doc, modified_doc) => {
        modified_doc["new_field"] = 2;
        return modified_doc;
    };
0 голосов
/ 17 сентября 2018

Для всех, кто находился в той же ситуации, следующие работали для меня

MyShema.post('findOneAndUpdate', function(doc) {
   doc.set("new_field", 2, {strict: false});
   doc.set({set: true})
});

Строгий режим - это истина, который не позволяет добавить новый ключ-val, который мы должны отключить, чтобы добавить ключ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...