RethinkDB:​​使用动态属性/字段名称加入

时间:2016-10-14 13:04:14

标签: rethinkdb rethinkdb-javascript reql

这个RethinkDB查询的解决方案已经困扰了我好几天了。我不是一个t-SQL开发人员......

给定这样的文档结构:

var messages = {
    "Category A" : { 
                    catName: 'Category A',
                    userInfo: { 
                                userName: 'Hoot',
                                userId: 12345,
                                count: 77
                              }
                     },
    "Category FOO" : { 
                      catName: 'Category FOO',
                      userInfo: { 
                                userName: 'Woot',
                                userId: 67890,
                                count: 42
                              }
                     }

}

其中“类别A”和“类别FOO”可以是用户在应用程序中输入的任何字符串,基本上是动态属性。这非常适合使用方括号表示法在客户端JS上进行迭代。 (消息[“类别A”])。

我需要使用ReQL更新userInfo.count字段,方法是“加入”userId字段上的另一个表UserMessages,该字段存在于两个表中。

我设法使用r.forEach()和r.object()将结果(例如:"12345":77, "67890": 42)作为子文档添加到“messages”对象。

但我必须将结果添加到userInfo。

编辑:为了增加清晰度......如果我不知道顶级属性,我很难导航到userId。即:

r.table('messages')('???????????')('userInfo')('userId')

任何建议都将不胜感激。 谢谢。

0 个答案:

没有答案