google-cloud-firestore - Firestore 数据库结构问题在事务中更新多个文档
问题描述
我有一个包含“属性”集合和“日历”集合的数据库。
在每个日历文档上都有一个字段:“properties”,它是 key 的对象:bool's。
properties: {
XYZ: true,
ABC: true,
}
然后我在每个属性上都有一个带有 calendarID 的字段。
calendarID: XYZ
这样我可以看到该属性属于哪个日历以及该日历具有哪些属性。
当我更新日历并添加属性时,我也会更新属性并添加日历键。我在交易中这样做。都好。
当我从日历中删除一个属性时,我的问题就出现了。
我无法将日历上的 bool 字段保存为 false,因为当我更新日历时,它会更新属性,但是该属性可能在不同的日历上处于活动状态。
例子:
- 将属性 XYZ 添加到日历 A = XYZ: true
- 从日历中删除属性 XYZ A = XYZ: false
- 将属性 XYZ 添加到日历 B = XYZ: true
- 随机更新日历 A = FAIL,因为这会从属性 XYZ 中删除 calendarID,因为它认为它是错误的。
所以我认为保存密钥: bool 不是正确的方法。
如何正确更新交易中的日历和属性?
我应该使用数组吗?如果我这样做了,那么我不需要将已删除属性的列表传递到事务中吗?
谢谢您的意见。
解决方案
推荐阅读
- image - 管理对照明条件非常敏感的文本检测器
- javascript - 如何在 React 中遍历包含数组的对象并且该对象处于状态
- ios - 将应用内购买产品与服务器同步
- sql - Postgres Sql 查询digits.digits.digits
- java - 如何更改出现在 android studio 窗口顶部的名称?
- mysql - MySQL:选择另一列不同的重复项?
- sql - 多个表上的 sql lite 中的完整外连接
- python - 在python中的单独行中获取子级别标题scrapy
- python - Google Cloud Functions 在没有错误消息的情况下崩溃
- python - 什么是 Lua 等价于 python 的“in”语句?