{merge : true}를 사용한 세트와 업데이트의 차이점
에서 클라우드 경우 FireStore 세 가지 쓰기 작업이 있습니다 :
1) 추가
2) 설정
3) 업데이트
문서에서 사용 set(object, {merge: true})
하면 기존 개체와 병합됩니다.
사용할 때도 마찬가지입니다. update(object)
그렇다면 차이점은 무엇입니까? Google이 논리를 복제하는 것이 이상하게 보입니다.
차이점을 이해 한 방법 :
set
병합하지 않으면 문서를 덮어 쓰거나 아직 존재하지 않는 경우 생성합니다.set
병합을 사용하면 문서의 필드를 업데이트하거나 존재하지 않는 경우 생성합니다.update
필드를 업데이트하지만 문서가 없으면 실패합니다.create
문서를 만들지 만 문서가 이미 있으면 실패합니다.
set
및에 제공하는 데이터의 종류에도 차이가 있습니다 update
.
들어 set
당신은 항상 문서 형태의 데이터를 제공해야합니다 :
set(
{a: {b: {c: true}}},
{merge: true}
)
와 함께 update
중첩 된 값을 업데이트하기 위해 필드 경로를 사용할 수도 있습니다.
update({
'a.b.c': true
})
"병합으로 설정"과 "업데이트"간의 또 다른 차이점 (Scarygami의 답변 확장)은 중첩 된 값으로 작업 할 때입니다.
다음과 같은 구조의 문서가있는 경우 :
{
"friends": {
"friend-uid-1": true,
"friend-uid-2": true,
}
}
추가하고 싶습니다 {"friend-uid-3" : true}
이것을 사용하여 :
db.collection('users').doc('random-id').set({ "friends": { "friend-uid-3": true } },{merge:true})
이 데이터가 생성됩니다.
{
"friends": {
"friend-uid-1": true,
"friend-uid-2": true,
"friend-uid-3": true
}
}
그러나 update
이것을 사용하여 :
db.collection('users').doc('random-id').update({ "friends": { "friend-uid-3": true } })
이 데이터가 생성됩니다.
`{
"friends": {
"friend-uid-3": true
}
}`
참고 URL : https://stackoverflow.com/questions/46597327/difference-between-set-with-merge-true-and-update
'Development Tip' 카테고리의 다른 글
Rails 마이그레이션에서 한 열을 다른 열의 값으로 업데이트 (0) | 2020.11.10 |
---|---|
iOS 앱에서 Facebook 페이지 링크 열기 (0) | 2020.11.09 |
페이지로드 후 jquery 코드를 수행하는 방법은 무엇입니까? (0) | 2020.11.09 |
Mongoid 설치 후 액티브 레코드 생성기를 사용하십니까? (0) | 2020.11.09 |
Elastic Beanstalk에서 https를 강제하는 방법은 무엇입니까? (0) | 2020.11.09 |