如何附加到 RethinkDB 中可能不存在的子文档?
Posted
技术标签:
【中文标题】如何附加到 RethinkDB 中可能不存在的子文档?【英文标题】:How to append to possibly non-existent subdocument in RethinkDB? 【发布时间】:2015-05-17 19:11:15 【问题描述】:我有一个 JSON 模式可以验证这样的文档:
"id": "abc123",
...
"galleries":
<category>:
"items": [],
"visible": true
验证不需要"galleries"
部分(某些文档可能没有图库),<category>
部分只是一个任意字符串,例如。 “截图”。
如果"galleries"
和<category>
都不能保证存在,我如何将图像附加到图库项目?假设我想将图像附加到“屏幕截图”画廊。我是否必须先进行两次查询并检查是否存在,或者是否可以原子地执行此操作?
编辑:我目前的解决方案是使用 .default()
查询游戏的 galleries
字段,然后使用 Python 处理生成的 dict 并使用合并进行更新。
【问题讨论】:
【参考方案1】:你可以这样做:
r.table('tbl').get(abc123).update(galleries: <category>: items: r.row('galleries')(<category>)('items').default([]).append(NEW_ITEM))
【讨论】:
以上是关于如何附加到 RethinkDB 中可能不存在的子文档?的主要内容,如果未能解决你的问题,请参考以下文章
通过附加到新环境来检查 .rdata 文件的内容 - 可能吗?
SQL SERVER 2008 R2 数据库附加到 SQL server 2005,怎么整