首页 > 解决方案 > 重新考虑仅针对子数组的 DB 查询

问题描述

假设我在一个名为警报的表中有一个对象,例如

{ id:"1"
   history:[ {
            date:"some date"
            hid:"1234"
          },
         { 
          date:"some date"
          hid:"1234"
         }
       ]
  }
 { id:"2"
   history:[ {
            date:"some other date"
            hid:"1235"
          },
         { 
          date:"some date"
          hid:"1234"
         }
       ]
  }

我想要一个仅包含所有警报的历史对象的数组。如果我使用采摘,例如

r.db("irrelevant").table("alerts").pluck("history")

我最终得到了带有括号的整个结构,只是没有 id。喜欢

{
  history:[{hid:123,date:"some date"}{hid:123,date:"some date"}]
},
{
  history:[{hid:123,date:"some date"}{hid:123,date:"some date"}]
 }

当我想要的是

[{hid:123,date:"some date"},{hid:123,date:"some date"},{hid:123,date:"some date"},{hid:123,date:"some date"}]

我专门在 go 中执行此操作,但如果我能找到 RethinkDB javascript 查询,我可能会将其翻译成 go

标签: gorethinkdb

解决方案


您需要使用concatMap命令

r.db("irrelevant").table("alerts").concatMap(r.row.getField('history'))

推荐阅读