首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ReQL更新RethinkDB中的嵌套数组

如何使用ReQL更新RethinkDB中的嵌套数组
EN

Stack Overflow用户
提问于 2017-02-23 22:20:15
回答 1查看 632关注 0票数 2

我有一个关于在RethinkDB中更新数组的问题。我的JSON结构如下所示。

代码语言:javascript
复制
{
    "LOG_EVENT": {
        "ATTRIBUTES": [
            {
                "ATTRIBUTE1": "TYPE",
                "VALUE": "ORDER"
            },
            {
                "ATTRIBUTE2": "NUMBER",
                "VALUE": "1234567"
            }
        ],
        "EVENT_CODE": [
            {
                "CODE_NAME": "EVENT_SAVED",
                "EVENT_TIMESTAMP": "2015-08-18T00:58:12.421+08:00"                
            }

        ],
        "MSG_HEADER": {
            "BUSINESS_OBJ_TYPE": "order",
            "MSG_ID": "f79a672b-f15e-459d-a29b-725486d6401f",
            "DESTINATIONS": "3"            
        }
    },
    "id": "0de3117e-12dd-4d10-a464-dff391a4513f"
}

在这里,我尝试在我的事件代码中更新一个新事件

代码语言:javascript
复制
{
   "CODE_NAME": "MESSAGE_DELIVERED_TO_APP2",
   "EVENT_TIMESTAMP": "2015-08-18T12:58:12.421+08:00"               
}

我的最终JSON将如下所示:

代码语言:javascript
复制
{
    "LOG_EVENT": {
        "ATTRIBUTES": [
            {
                "ATTRIBUTE1": "TYPE",
                "VALUE": "ORDER"
            },
            {
                "ATTRIBUTE2": "NUMBER",
                "VALUE": "1234567"
            }
        ],
        "EVENT_CODE": [
            {
                "CODE_NAME": "EVENT_SAVED",
                "EVENT_TIMESTAMP": "2015-08-18T00:58:12.421+08:00"
            },
            {
                "CODE_NAME": "MESSAGE_DELIVERED_TO_APP2",
                "EVENT_TIMESTAMP": "2015-08-18T12:58:12.421+08:00"
            }
        ],
        "MSG_HEADER": {
            "BUSINESS_OBJ_TYPE": "order",
            "MSG_ID": "f79a672b-f15e-459d-a29b-725486d6401f",
            "DESTINATIONS": "3"
        }
    },
    "id": "0de3117e-12dd-4d10-a464-dff391a4513f"
}

您能在ReQL查询方面提供帮助吗?

已在下面尝试,但不起作用

代码语言:javascript
复制
    r.db("test").table("test1").get("0de3117e-12dd-4d10-a464-dff391a4513f")("LOG_EVENT")('EVENT_CODE').update(function(row) {
  return {EVENT_CODE: row('EVENT_CODE').map(function(d) { 
    return r.branch(d.append({ 
     "CODE_NAME": "MESSAGE_DELIVERED_TO_APP2", 
     "EVENT_TIMESTAMP": "2015-08-18T00:58:12.421+08:00"      
    }), d)
      }) 
}} )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-24 22:01:14

下面是更新驻留在数组中的对象的嵌套字段的代码

代码语言:javascript
复制
r.db('DB').table('LOGS')
 .get('ID')
 .update({
    EVENT_CODE: r.row('EVENT_CODE')
                 .changeAt(1, r.row('EVENT_CODE').nth(1)
                                .merge({"CODE_NAME": "MESSAGE_DELIVERED_TO_APP2"}))
        })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42418355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档