Mongoose/MongoDb,如何针对另一个模型验证ID数组
Mongoose/MongoDb ,how to validate an array of Ids against another model
我有两个moongose架构:
var Schema2 = new Schema({
creator : { type: String, ref: 'User'},
schema_name : [{ type: String}],
});
var Schema1 = new Schema({
creator : { type: String, ref: 'User'},
schema_ref : [{ type: String, ref: 'Schema2' }],
});
我想知道当我创建一个新的Schema1时,最好的做法是检查数组schema_ref的每个元素都有相同的创建者。
因为schema1元素是由客户端表单添加的,所以我必须检查schema_ref元素是否由发送表单的同一用户所有
您可以尝试使用验证器功能,也可以使用简单的"保存"中间件:
Schema1.pre('save', function(next) {
let owner;
for (let entry in this.schema_ref) {
if (!owner) {
owner = entry;
} else {
if (entry !== owner) {
return next(new Error("owner mismatch");
}
}
}
});
此外,您的模式可能无法按预期工作,看起来您实际上需要:
schema_ref: [{
type: {type: String},
ref: "User"
}]
此外,看看id验证器插件,或者类似的插件——除了验证之外,它还将检查其他(Users)集合中是否真的存在所有类似的ref类型属性。
相关文章:
- 如何从另一个控制器更新控制器的ng重复模型
- LoopBack访问另一个模型
- AngularJS从另一个数据模型访问数据模型
- ng模型的输入基于另一个变量
- 在 Backbone 中将数据从一个模型传递到另一个模型
- 默认情况下,一个模型属性等于 sail.js 模型中的另一个模型属性
- 在引导模型弹出窗口中从一个页面到另一个页面进行导航
- 如何为模型中的类似记录设置另一个名称,以便与ext js中的表单字段进一步绑定
- 我无法访问javascript oop模型中的另一个方法
- 从 KnockoutJS 视图模型中获取值,然后在另一个视图模型上调用它
- 主干:如何在视图中将一个模型替换为另一个模型
- 访问 Ember.js 中的另一个模型数据
- 从另一个具有属于关系的模型访问模型属性 Ember.js
- 将主干模型属性值设置为另一个模型
- AngularJS请求模型在另一个模型创建[NodeJS]之前
- AngularJS:如果ng模型被另一个模型填充,如何让它受到影响
- 主干模型属性在更新另一个属性时更新
- 将 Ajax.Actionlink OnSuccess 上的模型 id 传递给另一个 Javascript 函数
- 更新一个控制器中的模型,该模型被监视并位于不同的包中,并由另一个控制器使用
- EmberJS:基于另一个属性重新加载控制器模型的最佳方法