Mongodb에서 내장된 문서 속성을 업데이트하는 중
다음과 같은 문서가 있습니다.
{
"_id": 3,
"Slug": "slug",
"Title": "title",
"Authors": [
{
"Slug": "slug",
"Name": "name"
}
]
}
모든 작성자를 업데이트합니다.작성자를 기준으로 한 이름을 지정합니다.슬러그, 시도해봤지만 소용이 없었어요
.update({"Authors.Slug":"slug"}, {$set: {"Authors.Name":"zzz"}});
내가 여기서 뭘 잘못하고 있는 거지?
.update(Authors:{$elemMatch:{Slug:"slug"}}, {$set: {'Authors.$.Name':"zzz"}});
어레이 필터를 사용하여 업데이트를 사용할 수 있습니다.
https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/ #positional-update-array 필터
아마도 다음과 같은 것일 것입니다.
yourcollection.update(
{},
{
"$set": {
"Authors.$[element].Name": "zzz"
}
},
{
"multi": true,
"arrayFilters": [
{ "element.Slug": "slug" }
]
}
)
Ps.: 여기서 설명하는 것처럼 Robo3T에서 작동하지 않을 것입니다: Mongodb 3.6.0-rc3 어레이 필터가 작동하지 않습니까?그러나 버전 >= 3.6으로 몽고 쉘을 입어볼 수 있습니다.
네, Rock의 솔루션은 작동하고 있습니다. P.S Notes는 Robo31을 사용할 때 매우 유용합니다.모든 db.collection_name.update()를 업데이트하려면 {$set: {"작가들.$[.이름": "zzz"}})
배열 db.collection_name.update()에서 일치하는 개체로 업데이트하려면 {$set: {"작가들.$[i].Name": "zz"}, {arrayFilters: [{"i.슬러그": "슬러그"}]})
참조: https://jira.mongodb.org/browse/SERVER-1243
언급URL : https://stackoverflow.com/questions/6758339/updating-embedded-document-property-in-mongodb
'programing' 카테고리의 다른 글
HTML - PHP의 텍스트 영역을 사용하여 MariaDB 테이블에 두 개의 값 삽입 (0) | 2023.06.30 |
---|---|
Angular2 예외:'routerLink'는 알려진 네이티브 속성이 아니므로 바인딩할 수 없습니다. (0) | 2023.06.30 |
Firebase 클라우드 기능 배포 오류 (0) | 2023.06.30 |
Mac용 Excel VBA에서 HTTP GET를 발급하는 방법 (0) | 2023.06.30 |
clob에 Oracle 문자열이 포함되어 있는지 확인합니다. (0) | 2023.06.30 |