Mongo 3.2ではドキュメントの検証が行われていますが、これを行うためにmongooseを使用せずにスキーマを定義することはできますか?たとえば、次のようにMongooseスキーマ対Mongo検証ツール
マングースが
userschema = mongoose.Schema({
org: String,
username: String,
fullname: String,
password: String,
email: String
});
MongoDBの
db.createCollection(
"example",{
validator:{
$and:[
{ "org":{$type:"string"}},
{ "username":{$type:"string"}},
{ "fullname":{$type:"double"}},
{"password":$type:"string"}},
{"email":{$type:"string"}}
]
},
validationLevel:"strict",
validationAction:"error"
})
何これらのけん引間のARのエーテル:差と、我々は、スキーマのようにバリデータを使用して、オプションの場を提供することができますか?
彼らそれぞれ異なる制限がありますので、私は両方を使用
これはちょっと広すぎますが、一言で言えば、違いは次のとおりです。1. MongoDBの検証は、「クライアント側」のスキーマ定義で利用可能な機能として「完全」とは言えません。 2. MongoDBスキーマの検証は、「クライアント」ではなく「サーバー」で行われるため、「アトミック」操作による変更でも「ある程度」検証することができます。 「機能」は非常に幼児期であり、「クエリ式」に強く依存しますが、「クライアント」フレームワークは完全な言語サポートを備えています。もちろん、すべての操作は "クライアント"で検証する必要があります。 –
また、あなたの質問の開始声明で述べたように。これは** MongoDB 3.2.x以上が必要です。これは現在「最新リリース」であり、比較的新しいリリースであるため、これは誰にとっても大したことではありません。また、エラーメッセージは「たくさんの作業」を必要とし、mongooseのようなクライアントフレームワークが与えることのできるものほどにはわかりません。 –