我正在使用Mongoose ODM在将模型存储到MongoDB之前对其进行部分验证。
是否可以放宽Mongoose模式,以便文档的给定部分不被验证?我试过以下内容:
var MySchema = new Schema({
user_id: { type: Schema.ObjectId, ref: 'User' },
freeform_data: {},
});
例如,如果我将内容设置为:
{
user_id: '123456',
freeform_data: {
dataitem1: 'a',
dataitem2: 'b',
items: [ 1, 2, 3, 4 ]
}
}
然后只存储user_id
,这在安全方面非常有意义。
如何禁用此字段的mongoose验证?
我正在使用此应用程序仅用于原型设计,所以我现在不关心安全性(我只是想要原型)。
答案 0 :(得分:5)
当您修改freeform_data等Mixed
字段的内容时,您需要通过在修改后的文档或后续markModified(path)
上调用save()
来通知Mongoose您已更改其值电话不会保存它。
例如:
user.freeform_data = { foo: 'bar' };
user.markModified('freeform_data');
user.save();
答案 1 :(得分:0)
<强> Mongeese 强> :一个mongoose多数据库助手/黑客模块 https://github.com/donpark/mongeese
免责声明:我想在同一个应用程序中连接两个MongoDB实例并放弃。所以我没试过。