【问题标题】:How do I set a setter for a subdocument in Mongoose?如何在 Mongoose 中为子文档设置设置器?
【发布时间】:2020-12-14 21:42:21
【问题描述】:

Mongoose 中的Subdocuments(嵌入文档)可以在如下模式中指定:

var childSchema = new Schema({ name: 'string' });

var parentSchema = new Schema({
    children: [childSchema]
});

但是如何在集合上指定setters 并在类型为嵌入式模式时要求数组不能为空?此代码将抛出嵌入式架构不是有效类型的错误:

function someSetter = function(val) {
    // Do something on set
    return val; 
};

var parentSchema = new Schema({
    children: [{type: childSchema, set: someSetter, required: true}]
});

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    一种解决方案是在 Schema 实例化之后设置 setter。

    parentSchema.path('children').set(someSetter);
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      var parentSchema = new Schema({
          children: [{type: {childSchema}, set: someSetter, required: true}]
      });
      

      【讨论】:

        猜你喜欢
        • 2013-11-14
        • 1970-01-01
        • 2014-02-26
        • 1970-01-01
        • 2021-01-24
        • 2014-08-08
        • 2014-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多