我遇到这样的问题。 "name"
和 "lastname"
字段各自并不唯一。但我希望名字+姓氏是独一无二的。所以相同的“名字”可以有多个,或者相同的“姓氏”可以有多个,但我只想有一个“名字+姓氏”。
例如:
在数据库中注册:
Name: "Erdem" lastName: "ÖZDEMİR"
Name: "Erdem" lastName: "AYDEMİR"
当我想记录上面的记录时,我希望它
record successfully
Name: "Ahmet" lastName: "ÖZDEMİR"
当我想记录上面的记录时,我希望它
record successfully
Name: "Erdem" lastName: "ÖZDEMİR"
但是由于这里的名字和姓氏相同,
give me an error!
如何才能做到呢?如何在实体中创建解决方案? 我的问题有点可笑,但我需要解决它。
Contact.java
@Document(collection = "contact")
public class Contact implements Serializable {
@Id
private String id;
private String name;
private String lastName;
private List<String> phones;
//get & set
}
最佳答案
如果您创建 unique index在 name,lastName
上,MongoDB 将拒绝任何违反该唯一性的写入。
例如:
db.collection.createIndex( { "name": 1, "lastName": 1 }, { unique: true } )
如果你的唯一索引被破坏,MongoDB将返回一个像这样的WriteError:
"writeError" : {
"code" : 11000,
"errmsg" : "E11000 duplicate key error index: test.collection.$a.b_1 dup key: { : null }"
}
关于mongodb - Spring Boot - MongoDB Multiplefield 独特,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45955028/