mongodb - 一个字段的唯一性取决于另一个字段
问题描述
我有一个方案:
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 字段具有相同值的通道中,title 字段才应该是唯一的。也就是说,如果 personeFor: "firstPerson" 我可以指定 title: "firstTitle" 字段的值 - 只有一次。但是如果 personeFor: "secondPerson" 字段 - 那么我可以再次使用 title: "firstTitle"。标题的唯一性应该在一个人的最前面。是否可以描述该方案以使其有效?
解决方案
您必须创建一个唯一的复合索引以确保元组 personFor/title 是唯一的。
mongo 命令:
db.tailSchema.createIndex(
{ personFor: 1, title : 1},
{ unique: true }
)
或者在猫鼬中:
tailSchema.index({
{ personFor: 1, title : 1},
{ unique: true }
);
推荐阅读
- r - 使用日期序列,将一个数字除以一个季度的天数
- reactjs - ReactJS Formik,为什么表格没有清除?
- sql - 我可以修改 BigQuery 中多个嵌套 RECORD 中的列,然后保持该列与以前相同的名称和位置吗?
- python - 为什么安装 TensorFlow 需要 google-auth?
- git - 有没有办法查看被 git 隐藏的文件的历史记录?
- laravel - 与分页的关系
- python - AutoKey:使用 AutoKey 切换到上次活动的应用程序,例如 Alt-Tab
- php - 如何组合多个具有共同值的数组
- msbuild - .proj 文件中 AfterTargets 的多个值
- python - 使用 BeautifulSoup 存储 href