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.