반응형
mongodb 불가능(?)을(를) 해제할 때 E11000 중복 키 오류 dup 키
제가 알기로는 단일 문서에서 upsert:true를 사용한 업데이트는 원자적 작업이므로 컬렉션에 고유하게 인덱스된 필드가 없을 때 특히 primary_id 키가 아닌 중복 키 오류가 발생하지 않습니다.
Order.update({ _id: order._id }, query, { upsert: true }, cb) // with mongoose
하지만 이것은 몽고드에 나타납니다.로그:
2015-03-27T09:39:10.349-0400 I WRITE [conn258236] update xyz.orders
query: { _id: "6353f880-c6a7-4260-809f-98e0af27b9a2" } update: { $set: { ...
} keyUpdates:0 writeConflicts:0 **exception: E11000 duplicate key error dup
key: { : "6353f880-c6a7-4260-809f-98e0af27b9a2" } code:11000** numYields:1
locks:{} 138ms
2015-03-27T09:39:10.349-0400 I COMMAND [conn258236] command xyz.$cmd
command: update { update: "orders", writeConcern: { w: 1 }, ordered: true,
updates: [ { q: { _id: "6353f880-c6a7-4260-809f-98e0af27b9a2" }, u: { $set: {
... } }, multi: false, upsert: true } ] } keyUpdates:0 writeConflicts:0
numYields:0 reslen:235 locks:{} 139ms
다음은 의 출력입니다.db.orders.getIndexes()
:
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "xyz.orders"
},
우리는 Wired Tiger와 함께 MongoDB 버전 3.0.0을 사용하고 있습니다.
유감스럽게도 이것은 진행 중인 문제입니다.저도 같은 문제가 있었고 이것에 대한 jira 티켓을 찾았습니다.
https://jira.mongodb.org/browse/SERVER-14322
true라는 두 가지 업데이트가 업데이트되어 문서를 찾지 못하고 쿼리 술어의 고유한 인덱스 위반과 충돌하는 새 문서를 삽입할 수 있습니다.
여기서 "해결책"은 클라이언트에 재시도 코드를 추가하는 것입니다.
언급URL : https://stackoverflow.com/questions/29305405/mongodb-impossible-e11000-duplicate-key-error-dup-key-when-upserting
반응형
'programing' 카테고리의 다른 글
Python 스크립트에서 POST를 사용하여 파일 전송 (0) | 2023.06.27 |
---|---|
드라이버 관리자 getConnection에 대한 연결 시간 초과 (0) | 2023.06.27 |
동적 상수 할당 (0) | 2023.06.27 |
Spring Boot Security + Thymeleaf : IProcessorDialect 클래스가 없습니다. (0) | 2023.06.27 |
키를 입력하여 VBA 사용자 양식에서 버튼을 누릅니다. (0) | 2023.06.27 |