MongoDB의 replaceOne()과 updateOne()의 차이점은 무엇입니까?
MongoDB 벌크 조작에는 다음 두 가지 옵션이 있습니다.
-
단일 문서 업데이트 작업을 대량 작업 목록에 추가합니다.작업은 기존 문서를 바꾸거나 기존 문서의 특정 필드를 업데이트할 수 있습니다.
-
단일 문서 대체 작업을 대량 작업 목록에 추가합니다.를 사용합니다.
Bulk.find()바꿀 문서를 결정하는 조건을 지정하는 방법.그Bulk.find.replaceOne()메서드는 치환을 단일 문서로 제한합니다.
문서에 따르면 이 두 가지 방법 모두 일치하는 문서를 대체할 수 있습니다.제가 제대로 이해한 건가요?updateOne()보다 범용적인 방법으로, 다음과 같이 문서를 대체할 수 있습니다.replaceOne()특정 필드만 업데이트합니까?
와 함께replaceOne()전체 문서만 바꿀 수 있습니다.updateOne()그럼 필드를 갱신할 수 있습니다.
부터replaceOne()전체 문서를 바꿉니다. 새 문서에 포함되지 않은 이전 문서의 필드가 손실됩니다.와 함께updateOne()이전 문서의 필드를 잃지 않고 새 필드를 추가할 수 있습니다.
예를 들어 다음 문서가 있는 경우:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333
}
사용방법:
replaceOne({"_id" : ObjectId("0123456789abcdef01234567")}, { "my_test_key4" : 4})
결과는 다음과 같습니다.
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key4" : 4.0
}
사용방법:
updateOne({"_id" : ObjectId("0123456789abcdef01234567")}, {$set: { "my_test_key4" : 4}})
결과는 다음과 같습니다.
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333.0,
"my_test_key4" : 4.0
}
주의:updateOne()문서에서 업데이트 연산자를 사용할 수 있습니다.
replaceOne()문서 전체를 치환합니다.updateOne()필드를 업데이트 또는 추가할 수 있습니다.사용시updateOne()또한 문서에 대한 업데이트를 안정적으로 수행할 수 있는 업데이트 운영자에 액세스할 수 있습니다.예를 들어, 2개의 클라이언트가 같은 문서의 같은 필드의 값을 "동시에" 증가시키면, 양쪽의 증분이 취득되는 한편, 치환의 경우, 다른 한쪽의 증분을 덮어쓸 가능성이 있습니다.
부터replaceOne()전체 문서를 바꿉니다. 새 문서에 포함되지 않은 이전 문서의 필드가 손실됩니다.와 함께updateOne()이전 문서의 필드를 잃지 않고 새 필드를 추가할 수 있습니다.
예를 들어 다음 문서가 있는 경우:
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333
}
사용방법:
replaceOne({"_id" : ObjectId("0123456789abcdef01234567")}, { "my_test_key4" : 4})
결과는 다음과 같습니다.
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key4" : 4.0
}
사용방법:
updateOne({"_id" : ObjectId("0123456789abcdef01234567")}, {$set: { "my_test_key4" : 4}})
결과는 다음과 같습니다.
{
"_id" : ObjectId("0123456789abcdef01234567"),
"my_test_key3" : 3333.0,
"my_test_key4" : 4.0
}
db.collection.replaceOne()와 정확히 같은 일을 한다db.collection.updateOne().
가장 큰 차이점은 이다.db.collection.replaceOne()편집 중인 데이터는 서버 사이를 왔다 갔다 해야 합니다.db.collection.UpdateOne()문서 전체가 아닌 필터링된 항목만 요청합니다.
언급URL : https://stackoverflow.com/questions/35848688/whats-the-difference-between-replaceone-and-updateone-in-mongodb
'programing' 카테고리의 다른 글
| Oracle Pl/SQL: XMLTYPE 노드를 통한 루프 (0) | 2023.02.15 |
|---|---|
| TypeError: 정의되지 않은 속성 'then'을 읽을 수 없습니다. (0) | 2023.02.15 |
| create-react-app은 App.js와 index.js를 모두 생성하는 이유는 무엇입니까? (0) | 2023.02.11 |
| Promise와 AJAX의 차이점은 무엇입니까? (0) | 2023.02.11 |
| 사이트의 내용이 Angular에서 변경되었을 때 index.html을 캐시하지 않도록 하는 방법JS 웹사이트? (0) | 2023.02.11 |