mongodb에서 우리는 _id 필드에 고유 한 값을 할당 할 수 있으며 "_id"필드 값은 고유 한 값인 경우 배열이 아닌 다른 유형이 될 수 있습니다. - docs에서. mongodb "_id"필드에 중복 값이 삽입되었습니다.
하지만 내 라이브 데이터베이스에서, 나는 다음과 같이 일부 레코드가 중복되었습니다 볼 수 있습니다
, 위의 기록에서db.memberrecords.find().limit(2).forEach(printjson)
{
"_id" : "999783",
"Memberid" : "999783",
"Name" : "ASHEESH SHARMA",
"Gender" : "M",
}
{
"_id" : "999783",
"Memberid" : "999783",
"Name" : "Sanwal Singh Meena",
"Gender" : "M",
}
는 같은 _id 값이 테이블에 두 번 삽입했다. 내가 로컬 데이터베이스 테스트 때 다음과 같이 아래
E11000 duplicate key error index: mongoms.memberrecords.$_id_ dup key: { : "999783" }
이 (참조 용) 내 라이브 memberrecords 테이블에 대한 인덱스이며, 같은 _id 기록 및 던지는 오류를 삽입 허용하지 않습니다
db.memberrecords.getIndexes()
[
{
"name" : "_id_",
"ns" : "mongoms.memberrecords",
"key" : {
"_id" : 1
},
"v" : 0
},
{
"_id" : ObjectId("4f0bcdf2b1513267f4ac227c"),
"ns" : "mongoms.memberrecords",
"key" : {
"Memberid" : 1
},
"name" : "Memberid_1",
"unique" : true,
"v" : 0
}
]
참고 :이 테이블에는 두 개의 샤딩이 있습니다. 이 제발
어떤 제안,
나는 php를 사용하여 mongo를 쿼리합니다. 그래서 중복 삽입을 피하기 위해, 나는 레코드를 삽입하기 전에 select 쿼리를 할 코드를 변경해야하고 레코드가 사용 가능하다면 레코드를 업데이트해야합니다. 중복 삽입을 피할 수있는 단순화/해결 방법이 있습니까? – Raja
샤드 키로 유일해야하는 필드를 사용하십시오. – kristina