mongodb 문서의 배열에 포함 된 단일 하위 요소를 업데이트하려고합니다. 배열 인덱스를 사용하여 필드를 참조하고 싶습니다 (배열 내의 요소에는 고유 식별자가 될 것이라고 보장 할 수있는 필드가 없습니다). 이것은 쉽게 할 것 같지만 구문을 알아낼 수 없습니다.
다음은 pseudo-json에서 수행하려는 작업입니다.
전에:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... old content B ... },
{ ... old content C ... }
]
}
후:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... NEW content B ... },
{ ... old content C ... }
]
}
쿼리는 다음과 같아야합니다.
//pseudocode
db.my_collection.update(
{_id: ObjectId(document_id), my_array.1 : 1 },
{my_array.$.content: NEW content B }
)
그러나 이것은 작동하지 않습니다. mongodb 문서를 검색하고이 구문에 대해 다른 변형을 시도하는 데 너무 오래 걸렸습니다 (예 : $slice, 등). MongoDB에서 이러한 종류의 업데이트를 수행하는 방법에 대한 명확한 설명을 찾을 수 없습니다.