Mongodb 嵌入另一个包含唯一键的模式的Mongoose模式

Mongodb 嵌入另一个包含唯一键的模式的Mongoose模式,mongodb,mongoose,Mongodb,Mongoose,我有两个mongoDB模式: /*--------------PRODUCTS SCHEMA------------------*/ var productSchema = new mongoose.Schema( { name : {type:String, index:{ unique: true }}, price : Number }); /*--------------KOT SCHEMA-------------------------*/ var kotSchema = n

我有两个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时,我得到以下mongoose错误: MongoError:E11000重复密钥错误集合:

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

我想,您可以尝试在KOT中给出ref.,product:{type:mongoose.Schema.Types.Object,ref:“productSchema”}我之前使用了引用数据关联,但这给我带来了一些问题,因此将其更改为嵌入式数据。在我在模式中引入唯一索引以避免重复条目之前,一切都很正常。我不知道这会影响使用嵌入数据的其他模式。尽管我仍然不确定这是否是真正的问题。。