【发布时间】:2018-09-01 11:05:17
【问题描述】:
假设我有一个包含以下数据的文档(没有子集合)
"kdsjkasdlkfsalk" : {
favouriteColor: "brown",
age: 20,
content: {
rand1: "randAns1",
rand2: "randAns2"
}
}
现在我想更改 favouriteColor 并覆盖 content 而不更改 age。因此我使用:
ref.set({
favouriteColor: "blue",
content: {
newRand: "newRandAns",
newRand2: "newRandAns2"
},
}, {merge:true})
想要的结果:
"kdsjkasdlkfsalk" : {
favouriteColor: "blue",
age: 20,
content: {
newRand: "newRandAns",
newRand2: "newRandAns2"
}
}
实际结果:
"kdsjkasdlkfsalk" : {
favouriteColor: "blue",
age: 20,
content: {
newRand: "newRandAns",
newRand2: "newRandAns2",
rand1: "randAns1",
rand2: "randAns2"
}
}
如您所见,{merge:true} 阻止了content 的覆盖,而只是添加了新字段。
我可以想到 2 个解决方案,但它们要么涉及首先检索所有数据,要么首先将 content 设置为布尔值,然后将其设置为所需的对象。有没有更好的方法来获得想要的结果?
【问题讨论】:
-
检查我的更新答案]
标签: javascript firebase merge google-cloud-firestore