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が保存されます。これは、セキュリティ的に完全に理にかなっています。

このフィールドに対するマングースの検証を無効にするにはどうすればよいですか?

私はこのアプリケーションをプロトタイピングの目的でのみ使用しているため、現時点ではセキュリティについては気にしません (ただプロトタイピングを行いたいだけです)。

4

2 に答える 2

5

freeform_data のようなフィールドの内容を変更するときは、変更したドキュメントMixedを呼び出してその値を変更したことを Mongoose に通知する必要があります。そうしないとmarkModified(path)、その後のsave()呼び出しで値が保存されません。

例えば:

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

Mongeese : mongoose マルチデータベース ヘルパー/ハック モジュール https://github.com/donpark/mongeese

免責事項: 同じアプリで 2 つの MongoDB インスタンスに接続しようとしましたが、断念しました。だから私はそれを試していません。

于 2015-04-05T03:05:25.513 に答える