[MONGODB] MongoDB의 임베디드 문서 속성을 업데이트
MONGODBMongoDB의 임베디드 문서 속성을 업데이트
나는 모습이 좋아하는 문서가 :
{
"_id": 3,
"Slug": "slug",
"Title": "title",
"Authors": [
{
"Slug": "slug",
"Name": "name"
}
]
}
나는 Authors.Slug 기반으로하는 모든 Authors.Name를 업데이트합니다. 나는 이것을 시도했지만 작동하지 않았다 :
.update({"Authors.Slug":"slug"}, {$set: {"Authors.Name":"zzz"}});
어떻게 내가 여기 잘못 한거야?
해결법
-
==============================
1.
.update(Authors:{$elemMatch:{Slug:"slug"}}, {$set: {'Authors.$.Name':"zzz"}});
-
==============================
2.당신은 배열 필터 업데이 트를 사용할 수 있습니다 : https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/#positional-update-arrayfilters
당신은 배열 필터 업데이 트를 사용할 수 있습니다 : https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/#positional-update-arrayfilters
이 같은 아마 뭔가 :
yourcollection.update( {}, { "$set": { "Authors.$[element].Name": "zzz" } }, { "multi": true, "arrayFilters": [ { "element.Slug": "slug" } ] } )
시 : 그것은 Robo3T에서하지 작업 여기에 설명 된대로한다 : MongoDB를 3.6.0-RC3 배열 필터가 작동하지? 그러나 버전> = 3.6와 몽고 쉘에 시도 할 수 있습니다.
-
==============================
3.Robo31을 시도 할 때 예, 록의 솔루션은 작동하고, P.S 노트는 정말 도움이됩니다 .. 우리 모두를 업데이트하려면 db.collection_name.update ({}, {$ 세트 : { "저자 $ [] 이름..": "ZZZ"}})
Robo31을 시도 할 때 예, 록의 솔루션은 작동하고, P.S 노트는 정말 도움이됩니다 .. 우리 모두를 업데이트하려면 db.collection_name.update ({}, {$ 세트 : { "저자 $ [] 이름..": "ZZZ"}})
우리는 배열에 객체를 일치하는 업데이트하려면 db.collection_name.update는 ({}, {$ 세트 { ". $ 저자 [I] .NAME": "ZZZ"}}, {arrayFilters [{ "i.Slug": "슬러그"}]})
참조 : https://jira.mongodb.org/browse/SERVER-1243
from https://stackoverflow.com/questions/6758339/updating-embedded-document-property-in-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 mongodump하여 덤프 된 데이터를 사용 하는가? (0) | 2019.12.22 |
---|---|
[MONGODB] MongoDB를이 - 포함 또는 C #을 드라이버 특정 요소를 제외 (0) | 2019.12.22 |
[MONGODB] 몽고에서 샤딩 및 복제의 차이점은 무엇입니까? (0) | 2019.12.21 |
[MONGODB] 같은 MongoDB의 쿼리 수와 고유 한 카운트에서 그룹을 선택합니다 (0) | 2019.12.21 |
[MONGODB] 다른 컬렉션에 하나 개의 컬렉션에서 MongoDB를 이동 문서 (0) | 2019.12.21 |