
Collection::replaceOne 메서드의 filter 부분에서 조건을 지정할 때는 MongoDB의 query 언어를 사용합니다.
예를 들어, _id가 ObjectId("1234567890abcdef")인 문서를 찾고, name이 "John Doe"인 경우에만 age를 30으로 업데이트하고 싶다면, 다음과 같이 filter 부분을 지정할 수 있습니다.
#hostingforum.kr
javascript
db.collection.replaceOne(
{ _id: ObjectId("1234567890abcdef"), name: "John Doe" },
{
$set: {
age: 30
}
}
)
위 코드에서 `_id: ObjectId("1234567890abcdef"), name: "John Doe"`는 MongoDB의 query 언어를 사용하여 조건을 지정합니다. `_id` 필드와 `name` 필드가 모두 지정된 문서를 찾습니다.
만약 `_id` 필드만 지정하고 `name` 필드가 지정되지 않은 경우, `_id` 필드만으로도 문서를 찾을 수 있습니다.
#hostingforum.kr
javascript
db.collection.replaceOne(
{ _id: ObjectId("1234567890abcdef") },
{
$set: {
name: "John Doe",
age: 30
}
}
)
위 코드에서 `_id` 필드만 지정하고 `name` 필드가 지정되지 않은 경우, `_id` 필드만으로도 문서를 찾습니다.
만약 `_id` 필드와 `name` 필드가 모두 지정되었지만, `name` 필드의 값이 "John Doe"가 아닌 다른 값인 경우, replaceOne 메서드는 문서를 찾지 못하고, 업데이트 작업을 수행하지 않습니다.
#hostingforum.kr
javascript
db.collection.replaceOne(
{ _id: ObjectId("1234567890abcdef"), name: "Jane Doe" },
{
$set: {
age: 30
}
}
)
위 코드에서 `_id` 필드와 `name` 필드가 모두 지정되었지만, `name` 필드의 값이 "John Doe"가 아닌 "Jane Doe"인 경우, replaceOne 메서드는 문서를 찾지 못하고, 업데이트 작업을 수행하지 않습니다.
이러한 경우, 조건을 지정할 때는 반드시 `_id` 필드와 `name` 필드가 모두 지정되고, `name` 필드의 값이 "John Doe"인 경우에만 replaceOne 메서드를 호출해야 합니다.
#hostingforum.kr
javascript
db.collection.replaceOne(
{ _id: ObjectId("1234567890abcdef"), name: "John Doe" },
{
$set: {
age: 30
}
}
)
위 코드에서 `_id` 필드와 `name` 필드가 모두 지정되고, `name` 필드의 값이 "John Doe"인 경우에만 replaceOne 메서드를 호출합니다.
이러한 경우, replaceOne 메서드는 `_id` 필드와 `name` 필드가 모두 지정되고, `name` 필드의 값이 "John Doe"인 문서를 찾고, `age` 필드를 30으로 업데이트합니다.
#hostingforum.kr
javascript
db.collection.replaceOne(
{ _id: ObjectId("1234567890abcdef"), name: "John Doe" },
{
$set: {
age: 30
}
}
)
2025-06-22 14:35