如何在 Mongoose 中为子文档设置 setter?

Jer*_*Lee 5 mongoose mongodb node.js

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

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

var parentSchema = new Schema({
    children: [childSchema]
});
Run Code Online (Sandbox Code Playgroud)

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

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

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

Jer*_*Lee 1

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

parentSchema.path('children').set(someSetter);
Run Code Online (Sandbox Code Playgroud)