RethinkDB 从行中生成键值对
RethinkDB generate key-value pair from rows
我有以下查询,其中 returns 每个状态的请求数 -
r.db.table("request").group("status").count()
结果 -
[
{
"group": "ACCEPTED",
"reduction": 1
},
{
"group": "DECLINED",
"reduction": 1
},
{
"group": "PENDING",
"reduction": 1
}
]
如何使用 rethinkdb 查询将此结果转换为以下结果 (javascript)?
{
"ACCEPTED": 1,
"DECLINED": 1,
"PENDING": 1
}
目前,我通过迭代 api 端的结果来实现这一点。但是我希望在 rethinkdb 中进行这种转换,如果可能的话?
r.db("test").table("request").group("status").count()
.ungroup()
.map(function(x){ return [x('group'), x('reduction')]; })
.coerceTo("object")
- 当您想继续处理 return 对象时,您需要
先调用
ungroup()
函数
那你需要用到地图
将结果转换为的函数:
[ [ "ACCEPTED" , 1 ] , [ "DECLINED" , 1 ] , [ "PENDING" , 1 ] ]
最后,您只需将其转换为具有 coerceTo("object")
的 json-对象,return 就是您想要的格式:
{
"ACCEPTED": 1,
"DECLINED": 1,
"PENDING": 1
}
我有以下查询,其中 returns 每个状态的请求数 -
r.db.table("request").group("status").count()
结果 -
[
{
"group": "ACCEPTED",
"reduction": 1
},
{
"group": "DECLINED",
"reduction": 1
},
{
"group": "PENDING",
"reduction": 1
}
]
如何使用 rethinkdb 查询将此结果转换为以下结果 (javascript)?
{
"ACCEPTED": 1,
"DECLINED": 1,
"PENDING": 1
}
目前,我通过迭代 api 端的结果来实现这一点。但是我希望在 rethinkdb 中进行这种转换,如果可能的话?
r.db("test").table("request").group("status").count()
.ungroup()
.map(function(x){ return [x('group'), x('reduction')]; })
.coerceTo("object")
- 当您想继续处理 return 对象时,您需要
先调用
ungroup()
函数 那你需要用到地图 将结果转换为的函数:
[ [ "ACCEPTED" , 1 ] , [ "DECLINED" , 1 ] , [ "PENDING" , 1 ] ]
最后,您只需将其转换为具有
coerceTo("object")
的 json-对象,return 就是您想要的格式:{ "ACCEPTED": 1, "DECLINED": 1, "PENDING": 1 }