javascript - Firestore - 对象未正确更新
问题描述
我有这个结构的对象:
{
assignments: []
faqs_url: "oi"
id: "pW68CiGZJMZJzyY1GExz"
name: "oi"
notes: {
file: {
extension: "pdf",
type: "base64"
}
name: "o"
url: "http://192.168.1.111:3000/notes/o.pdf"
paper: "P1"
past_topicals: []
video_lectures: []
}
现在当我通过调用更新对象时set(obj, {merge: true});
在哪里
obj1 = {
assignments: []
faqs_url: "oi"
id: "pW68CiGZJMZJzyY1GExz"
name: "oi"
notes: {
name: "chnged name"
url: "http://192.168.1.111:3000/notes/o.pdf"
paper: "P1"
past_topicals: []
video_lectures: []
}
它的作用是替换notes
对象并从对象中删除file
键,因为它不存在于更新的对象中。
我的问题是,不适merge: true;
用于嵌套对象?
有什么办法可以让它工作吗?
解决方案
合并/更新不像您描述的那样工作。您必须读取文档的内容,修改内存中字段的值,然后将其写回文档。
推荐阅读
- php - 如何将数据从 MSSQL 添加到 Ext.Net 7.2.0 经典版
- javascript - 无法启动模拟器。原因:没有找到模拟器作为 `emulator -list-avds` 的输出
- sql-server - 是否可以在系统版本表的查询中动态删除 FOR SYSTEM_TIME?
- java - @Query 结果到 DTO 导致 spring data jpa 中的构造函数错误
- python - 在 EC2 实例中的文件夹之间移动文件的问题
- node.js - 我似乎无法安装 Sqlite3
- python - Plotly:如何更改 3D 曲面图的配色方案?
- linux - 为什么while循环中的语法错误会中断脚本(但不会在while循环之外)
- iptables - 带有 iptbales 的传出 mac 地址过滤器
- javascript - 如何在javascript中将单词推送到数组中