Mongoose嵌套模式validation不起作用
我有以下mongoose模型:
RequestSchema = mongoose.Schema( merchant: type: String required: true products: [ 'Product' ] ) Request = mongoose.model('Request', RequestSchema) ProductSchema = mongoose.Schema( _type: String product_id: type: String required: true quantity: type: String required: true ) Product = mongoose.model('Product', ProductSchema)
但是,当我通过下面的请求(这是缺less一个数量),它得到validation,并保存到数据库:
{"merchant": "ABC", "products":[{"product_id":"12345"}]}
但是,当我尝试删除商家时,尝试保存它会导致架构validation错误:
{"products":[{"product_id":"12345", "quantity": "1"}]}
我如何使这些都返回validation错误?
当您要使用子文档并validation它们时,您需要引用架构对象:
ProductSchema = mongoose.Schema(...) RequestSchema = mongoose.Schema( merchant: type: String required: true products: [ ProductSchema ] )
这将在第一个文档上给出一个validation错误:
ValidationError: Path `quantity` is required.