首页 > 解决方案 > 嵌入另一个包含唯一键的模式的 Mongoose 模式

问题描述

我有两个 mongoDB 模式:

 /*--------------PRODUCTS SCHEMA------------------*/
var productSchema = new mongoose.Schema(
  { name : {type:String, index:{ unique: true }}, price : Number });

/*--------------KOT SCHEMA-------------------------*/
var kotSchema = new mongoose.Schema(
   { products:{ type:[productSchema], required: "Products cannot be blank" });

当我尝试使用以前保存的 KOT 文档中已经存在的产品来保存新的 KOT 时,我收到以下猫鼬错误: MongoError:E11000 重复键错误集合:

我只希望 productSchema 的 name 字段是唯一的。但是,我应该能够保存可能与数据库中其他 KOT 文档共享相同产品的 KOT。没有为 kotSchema 设置index:{unique:true}属性。那为什么我会收到重复的错误?以及如何定义模式来解决此错误?

标签: mongodbmongoose

解决方案


推荐阅读