문서 메뉴
문서 홈
/
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
}
]

을 사용하지 않는 경우 MongoDB는 마침표가 있는 필드 이름을 포함된 객체로 처리합니다. 예를 들어, 다음 쿼리는 필드 $getField usd 내의 price 필드가 보다 큰 문서와 일치합니다.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 }
}
]

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

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