【发布时间】:2018-07-17 13:06:08
【问题描述】:
我是 mongodb 的新手。在研究“在 mongodb 中施加唯一约束”主题时,我遇到了 createindex 的概念,其中唯一字段设置为 true。这确保了在其上创建索引的某个字段在整个数据库中变得唯一。
我有一个 Student 集合,其中包含三个字段:student_id、name、age。我希望 student_id 在我的数据库中是唯一的。现在,对于字段 'name' = "XYZ" 的值,我可以允许许多学生 ID 不需要唯一的记录。对于“name”的所有其他值,student_id 必须是唯一的。
例如:如果初始学生集合的内容是:
[
{ "student_id": 1
"name": "A",
"age": 1.0
},
{
"student_id": 2
"name": "B",
"age": 2.0
}
]
现在,如果我想插入记录
{
"student_id": 2
"name": "C",
"age": 105.0
}
它应该告诉我student_id: 2 已经存在(或重复条目)。
但是如果我想插入记录:
{
"student_id": 2
"name": "XYZ",
"age": 105.0
}
它应该允许我插入,因为我想插入任何记录,如果 name: "XYZ" 用于学生 ID 的任何值。
对于所有其他名称值,我希望 student_id 字段是唯一的。
任何建议都将受到高度评价。谢谢 。
【问题讨论】:
-
啊,事实证明,你不能在部分索引表达式中使用否定表达式(“not XYZ”)。可惜。否则,它会对您有所帮助。
-
没错。无论如何谢谢。
标签: mongodb mongodb-query