Docs Menu
Docs Home
/ /

마침표가 있는 필드 이름

이 섹션에서는 필드 이름에 마침표가 포함된 문서를 삽입, 쿼리 및 업데이트 방법을 요약하여 설명합니다. 일부 기능은 마침표가 포함된 필드에서 지원되지 않으므로 MongoDB 마침표가 포함된 필드 이름의 사용을 권장하지 않습니다. 자세한 내용은 일반 제한 사항을 참조하세요.

참고

필드 이름에서 마침표로 구분된 단어 수를 255 미만으로 제한합니다. 더 많이 사용하려고 하면 MongoDB 오류를 반환합니다.

마침표가 있는 필드 이름을 포함하는 문서를 삽입하려면 필드 이름을 따옴표 안에 넣습니다.

다음 명령은 price.usd 필드 이름이 포함된 문서를 삽입합니다.

db.inventory.insertOne(
{
"item" : "sweatshirt",
"price.usd": 45.99,
"quantity": 20
}
)

마침표가 있는 필드를 쿼리하려면 $getField 연산자를 사용하세요.

다음 쿼리는 price.usd 필드가 40보다 큰 문서를 반환합니다.

db.inventory.find(
{
$expr:
{
$gt: [ { $getField: "price.usd" }, 40 ]
}
}
)
[
{
_id: ObjectId("66145f9bcb1d4abffd2f1b50"),
item: 'sweatshirt',
'price.usd': 45.99,
quantity: 20
}
]

$getField를 사용하지 않는 경우 MongoDB는 마침표가 있는 필드 이름을 내장된 객체로 취급합니다. 예를 들어, 다음 쿼리는 price 필드 내의 usd 필드가 40보다 큰 문서와 일치합니다.

db.inventory.find( {
"price.usd": { $gt: 40 }
} )

앞의 쿼리는 이 문서와 일치합니다.

{
"item" : "sweatshirt",
"price": {
"usd": 45.99
},
"quantity": 20
}

마침표가 있는 필드를 업데이트하려면 $setField 연산자와 함께 집계 파이프라인을 사용하세요.

다음 작업은 price.usd 필드를 29.99(으)로 설정합니다.

db.inventory.updateOne(
{ "item": "sweatshirt" },
[
{
$replaceWith: {
$setField: {
field: "price.usd",
input: "$$ROOT",
value: 29.99
}
}
}
]
)

$setField를 사용하지 않는 경우, MongoDB는 마침표가 있는 필드 이름을 내장된 객체로 취급합니다. 예를 들어, 다음 작업은 기존 price.usd 필드를 업데이트하지 않고 대신 price 필드에 내장된 새 필드 usd를 삽입합니다.

db.inventory.updateOne(
{ "item": "sweatshirt" },
{ $set: { "price.usd": 29.99 } }
)

결과 문서:

[
{
_id: ObjectId("66145f9bcb1d4abffd2f1b50"),
item: 'sweatshirt',
'price.usd': 45.99
quantity: 20,
price: { usd: 29.99 }
}
]

집계 파이프라인을 사용한 업데이트의 더 많은 예시는 집계 파이프라인을 사용한 업데이트를 참조하세요.

돌아가기

달러 접두사가 붙은 필드 이름

이 페이지의 내용