3

我正在使用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 对此字段的验证?

我将此应用程序仅用于原型制作目的,所以我现在不关心安全性(我只想制作原型)。

4

2 回答 2

5

当您修改Mixed诸如 freeform_data 之类的字段的内容时,您需要通知 Mongoose 您已通过调用markModified(path)修改后的文档来更改其值,否则后续save()调用将不会保存它。

例如:

user.freeform_data = { foo: 'bar' };
user.markModified('freeform_data');
user.save();
于 2012-05-02T02:00:42.440 回答
0

Mongeese :猫鼬多数据库助手/黑客模块 https://github.com/donpark/mongeese

免责声明:我希望在同一个应用程序中连接到两个 MongoDB 实例并放弃了。所以我没有尝试过。

于 2015-04-05T03:05:25.513 回答