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)
一种解决方案是在 Schema 实例化之后设置 setter。
parentSchema.path('children').set(someSetter);
Run Code Online (Sandbox Code Playgroud)