AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

마침표가 있는 필드 이름

이 섹션에서는 필드 이름에 마침표가 포함된 문서를 삽입, 쿼리 및 업데이트 방법을 요약하여 설명합니다. 일부 기능은 마침표가 포함된 필드에서 지원되지 않으므로 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 }
}
]

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

임베디드 필드에 대해 점 표기법과 동일한 필드 이름을 사용하지 마세요. 문서에 포함된 필드 { "a" : { "b": ... } }가 있는 경우, 해당 컬렉션의 다른 문서에는 최상위 필드 "a.b"없어야 합니다.

내장된 필드 와 최상위 필드 같은 방식으로 참조할 수 있다면 내장된 필드 에서 인덱싱 및 샤딩 작업이 발생합니다. 컬렉션 동일한 방식으로 참조하는 필드 포함되어 있는 동안에는 최상위 필드 "a.b" 에서 인덱스 하거나 샤드 할 수 없습니다.

예시 들어 컬렉션 내장된 필드 { "a" : { "b": ... } } 와 최상위 필드 "a.b"가 모두 있는 문서가 포함된 경우, 인덱싱 및 샤딩 작업은 내장된 필드 에서 발생합니다. 컬렉션 포함된 필드 { "a" : { "b": ... } }도 포함된 경우 최상위 필드 "a.b" 에서 인덱스 하거나 샤드 할 수 없습니다.