一个字段的唯一性取决于另一个字段

问题描述 投票:0回答:1

我有一个方案:

const tailSchema = new Schema(
  {
    personeFor: {
      type: String,
      required: true
    },
    title: {
      type: String,
      unique: true,
      maxlength: 220,
      required: true,
      trim: true
    }
  },
  { versionKey: false, collection: "tails" }
);

标题字段应仅在personeFor字段具有相同值的过道中唯一。也就是说,如果personeFor:“ firstPerson”,我可以指定标题的值:“ firstTitle”字段-仅一次。但是,如果personeFor:“ secondPerson”字段-那么我可以再次使用title:“ firstTitle”。头衔的唯一性应该放在一个人的前列。是否可以描述该方案以使其起作用?

mongodb mongoose
1个回答
0
投票

您必须创建一个unique compound index以确保元组personFor / title是唯一的。

mongo命令:

db.tailSchema.createIndex(
    { personFor: 1, title : 1}, 
    { unique: true } 
)

或猫鼬:

tailSchema.index({
 { personFor: 1, title : 1}, 
 { unique: true } 
);
© www.soinside.com 2019 - 2024. All rights reserved.