Spring启动-MongoDB Multiplefield唯一
我有这样的问题。Spring启动-MongoDB Multiplefield唯一,mongodb,spring-boot,spring-data,spring-data-jpa,Mongodb,Spring Boot,Spring Data,Spring Data Jpa,我有这样的问题。“name”和“lastname”字段不是唯一的。但是name+lastname我希望是唯一的。所以同一个“名字”可以不止一个,或者同一个“姓氏”可以不止一个,但我只想要一个“名字+姓氏” 例如: db.collection.createIndex( { "name": 1, "lastName": 1 }, { unique: true } ) 在数据库中注册: Name: "Erdem" lastName: "ÖZDEMİR" 当我想录制上述记录时,我希望它 成功录制
“name”
和“lastname”
字段不是唯一的。但是name+lastname我希望是唯一的。所以同一个“名字”可以不止一个,或者同一个“姓氏”可以不止一个,但我只想要一个“名字+姓氏”
例如:
db.collection.createIndex( { "name": 1, "lastName": 1 }, { unique: true } )
在数据库中注册:
Name: "Erdem" lastName: "ÖZDEMİR"
当我想录制上述记录时,我希望它 成功录制 当我想录制上述记录时,我希望它 成功录制 但是因为这里的名字和姓氏都一样 给我一个错误 怎样才能做到呢?如何在实体中创建解决方案? 我的问题有点可笑,但我需要解决它 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
}
@文档(collection=“contact”)
公共类联系人实现可序列化{
@身份证
私有字符串id;
私有字符串名称;
私有字符串lastName;
私人名单电话;
//获取并设置
}
如果您在名称、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 }"
}
@compoundex(name=“name\u lastName\u idx”,def=“{'name':1,'lastName':1}”,unique=true)
ty感谢您的帮助。我使用这个编年史创建索引。
db.collection.createIndex( { "name": 1, "lastName": 1 }, { unique: true } )
"writeError" : {
"code" : 11000,
"errmsg" : "E11000 duplicate key error index: test.collection.$a.b_1 dup key: { : null }"
}