如何在Mongoose文档中允许自由格式的JSON数据?

时间:2012-05-01 19:54:50

标签: mongodb mongoose

我正在使用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验证?

我正在使用此应用程序仅用于原型设计,所以我现在不关心安全性(我只是想要原型)。

2 个答案:

答案 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实例并放弃。所以我没试过。