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.
- 使用本地Node.js驱动程序将MongoDB结果写入文件
- testingfindOneAndUpdate插入重复预防
- 推向Heroku失败 – sinon-mongoose,grpc,node-pre-gyp
- ValidationError:validation失败mongoose
- 用node.js,mongoose,gridfs-stream读取文件
- mongoose findByIdAndUpdate只更新文档中的一个字段
- 如何填充映射减less的结果
- 如何转换mongo ObjectId .toString不包括'ObjectId()'包装 – 只是值?
- Mongoose模式字段在MongoDB中是反向sorting的