我在rethinkdb中使用组
得到了一些这样的结果[
{
"group":[
0,
"A"
],
"reduction":14
},
{
"group":[
"B",
0
],
"reduction":2
}
]
我喜欢 r ..... group(..)。count()(我不能提及所有查询,因为有很多步骤)。但我的结果应该像这样显示:
[
{
"group":[
"A"
],
"reduction":14
},
{
"group":[
"B"
],
"reduction":2
}
]
更好的只是键值对[{"A":14},{"B":2}]
答案 0 :(得分:1)
这不是世界上最干净的ReQL,但它有效!
r.expr([
{
"group":[
0,
"A"
],
"reduction":14
},
{
"group":[
"B",
0
],
"reduction":2
}
])
.map(function (row) {
// Return a tuple with the key and the value
return [row('group').filter(function (row) { return row.eq(0).not() }).nth(0), row('reduction') ]
})
.map(function (row) {
// Convert the tuple into an array by passing an array of key-value pairs
return r.expr([row]).coerceTo('object')
})
你可以将这两个地图功能结合起来,但我个人认为将它们分开是更好的,以使它们更容易理解。
我使用了r.expr
,因此您只需将其复制/粘贴到数据资源管理器中,看看它是否有效,但您可以在查询结尾复制/粘贴最后两个maps
,结果会是一样的。
结果:
[
{
"A": 14
} ,
{
"B": 2
}
]