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 }"
   }