2017-08-30 9 views
0

私はこのような問題があります。 "name"フィールドと"lastname"フィールドは、個別に固有のフィールドではありません。しかし、名前+姓私はユニークになりたい。だから、同じ "名前"は複数のものでもよいし、同じ "名字"は複数のものでもよいが、ただ一つの "名前+姓"しか持たない。例えばSpring Boot - MongoDB Multiplefield unique

データベースに登録

Name: "Erdem" lastName: "ÖZDEMİR" 

Name: "Erdem" lastName: "AYDEMİR" 

私は上記のレコードを記録したい場合は、私が正常に

レコードにそれをしたいです

Name: "Ahmet" lastName: "ÖZDEMİR" 

私は上記のレコードを記録したい場合には、それはここに同じ名前と姓なので、私は

記録に成功

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 
} 

答えて

1

あなたはname, lastNameunique indexを作成する場合、MongoDBは違反一意そのいずれかの書き込みを拒否します。例えば

"writeError" : { 
     "code" : 11000, 
     "errmsg" : "E11000 duplicate key error index: test.collection.$a.b_1 dup key: { : null }" 
    } 
+0

'@CompoundIndex(名前= "name_lastName_idx"、DEF =「{ '名前を:あなたのユニークなインデックスが破られた場合

db.collection.createIndex({ "name": 1, "lastName": 1 }, { unique: true }) 

のMongoDBはこのようWriteErrorを返します。 ':1、' lastName ':1} "、unique = true)'助けてください。私はこのannatation create indexを使用します。 – forguta

関連する問題