【问题标题】:Modify Mongoose Object in Post Hooks在 Post Hooks 中修改 Mongoose 对象
【发布时间】:2019-02-21 01:06:24
【问题描述】:

我想在 post 钩子中修改 mongoose 对象,例如 post findOneAndUpdate,但由于它是 mongoose 对象,我无法像以下示例中那样向它添加任何属性

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

返回的这个文档没有 new_field,我该如何处理?

【问题讨论】:

    标签: mongoose


    【解决方案1】:

    对于其他在相同情况下为我工作的人

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

    严格模式为 true,不允许添加新的 key-val,我们必须禁用才能添加密钥

    【讨论】:

      【解决方案2】:

      我发现工作的是猫鼬的变换属性,它做了类似的事情

          if (!Myschema.options.toObject) Myschema.options.toObject = {};
          Myschema.options.toObject.transform = (doc, modified_doc) => {
              modified_doc["new_field"] = 2;
              return modified_doc;
          };
      

      【讨论】:

        猜你喜欢
        • 2023-03-25
        • 2013-10-23
        • 2017-09-30
        • 1970-01-01
        • 2019-01-15
        • 2018-01-29
        • 1970-01-01
        • 2019-01-04
        • 1970-01-01
        相关资源
        最近更新 更多