【问题标题】:How to append to possibly non-existent subdocument in RethinkDB?如何附加到 RethinkDB 中可能不存在的子文档?
【发布时间】:2015-05-17 19:11:15
【问题描述】:

我有一个 JSON 模式可以验证这样的文档:

{
    "id": "abc123",
    ...
    "galleries": {
        <category>: {
            "items": [],
            "visible": true
        }
    }
}

验证不需要"galleries" 部分(某些文档可能没有图库),&lt;category&gt; 部分只是一个任意字符串,例如。 “截图”。

如果"galleries" 和&lt;category&gt; 都不能保证存在,我如何将图像附加到图库项目?假设我想将图像附加到“屏幕截图”画廊。我是否必须先进行两次查询并检查是否存在,或者是否可以原子地执行此操作?

编辑:我目前的解决方案是使用 .default({}) 查询游戏的 galleries 字段,然后使用 Python 处理生成的 dict 并使用合并进行更新。

【问题讨论】:

    标签: python rethinkdb subdocument reql


    【解决方案1】:

    你可以这样做:

    r.table('tbl').get(abc123).update({galleries: {<category>: {items: r.row('galleries')(<category>)('items').default([]).append(NEW_ITEM)}}})
    

    【讨论】:

      猜你喜欢
      • 2016-08-23
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 2015-02-06
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多