14

特定の属性を設定する必要があるスキーマを mongodb で定義できますか? NOT NULLSQL とよく似ています。それが可能であれば。これの構文は何ですか?

node.js と mongoose を使用しています。mongoose v3.6.15 mongodb v2.4.5

編集 Charles Aが提供した答えは正しいですが、ドキュメントを調べてみると、マングースでは、次のようにスキーマ定義で必要に応じてフィールドを定義することも可能であることがわかりました。

foo : {
    bar : { type : String, required : true }
}
4

3 に答える 3

9

Mongoose では、フィールドを保存する前にバリデーターを使用して、フィールドが設定されているかどうかを確認できます。私の知る限り、フィールドが必須であることをスキーマで指定する方法はないため、もう少しボイラープレート コードが必要です。

于 2013-07-30T10:50:22.093 に答える
1

ここで道を見つけた人は、次のように「必須」を使用できます。

db.createCollection("person", {
   validator: {
      $jsonSchema: {
         bsonType: "object",
         required: [ "name" ],
         properties: {
            name: {
               bsonType: "string",
               description: "must be a string and is required"
            }
         }
      }
   }
}

詳細については、こちらこちらのドキュメントをご覧ください。

別のアプローチは、 mongoose を使用して Mongodb を使用することであることに注意してください。これにより、フィールド レベルでこれを直接指定できます。

const person = new mongoose.Schema({
    name {
        type: String,
        required: true
    }
});
于 2020-08-24T20:19:18.953 に答える