go - 重新考虑仅针对子数组的 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
解决方案
您需要使用concatMap命令
r.db("irrelevant").table("alerts").concatMap(r.row.getField('history'))
推荐阅读
- java - 我可以在不继承其类的情况下调用对象方法吗
- android - 如果有 getArguments(),我们应该在片段中使用 savedInstanceState 吗?
- php - 创建 Laravel Nova 镜头 - 不在对象上下文中使用 $this
- polly - 使用 Flurl 设置默认 Polly 策略
- c# - 使用 EWS 检索电子邮件,只需要正文中的文本
- excel - 和间接表
- javascript - 在选项输入对象中插入变量 Javascript
- tfs - 使用 VSTS Scrum 模板设置 WIP 限制?
- php - 显示表中的所有列值
- c# - 如何使用 Windows 应用程序 (C#) 动态创建用户可访问的控件(如标签、按钮 ..)