Docs Menu
Docs Home
/
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 }
}
]

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

돌아가기

달러 기호