ความแตกต่างอีกประการหนึ่ง (ขยายคำตอบของ Scarygami) ระหว่าง "set with merge" และ "update" คือเมื่อทำงานกับค่าที่ซ้อนกัน
หากคุณมีเอกสารที่มีโครงสร้างดังนี้:
{
"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
}
}`
create
วิธีการใน API ที่ไหน