RethinkDB从行生成键值对

问题描述 投票:1回答:1

我有以下查询,它返回每个状态的请求数 -

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中进行这种转换,如果它可能的话呢?

rethinkdb rethinkdb-javascript
1个回答
1
投票
   r.db("test").table("request").group("status").count()
    .ungroup()
    .map(function(x){ return [x('group'), x('reduction')]; })        
    .coerceTo("object")
  • 如果要继续处理返回对象,则需要先调用ungroup()函数
  • 然后你需要使用map函数将结果转换为: [[“ACCEPTED”,1],[“DECLINED”,1],[“PENDING”,1]]
  • 最后你只需使用coerceTo("object")将其转换为json对象,它会返回所需的格式: {“已接受”:1,“已拒绝”:1,“待定”:1}
© www.soinside.com 2019 - 2024. All rights reserved.