在特定条件下在mongo DB中创建唯一索引

时间:2018-07-17 13:06:08

标签: mongodb mongodb-query

我是mongodb的新手。在研究“在mongodb中施加唯一约束”主题时,我遇到了createindex的概念,其中unique字段设置为true。这样可以确保在其上创建索引的特定字段在整个数据库中都变得唯一。

我有一个学生集,其中包含三个字段:student_id,姓名,年龄。我希望student_id在整个数据库中都是唯一的。现在,对于字段'name'=“ XYZ”的值,我可以允许很多记录,其中student_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"代表Student_id的任何值。 对于所有其他名称值,我希望student_id字段唯一。

任何建议都是非常可取的。谢谢 。

1 个答案:

答案 0 :(得分:0)

您可以在两个键上创建唯一索引,在您的情况下,可以在name和student_id上创建唯一索引。这样可以解决您的情况。 检查链接以获取更多帮助:https://docs.mongodb.com/manual/core/index-unique/