RethinkDB генерирует пару ключ-значение из строк - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть следующий запрос, который возвращает номер запроса для каждого статуса -

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, если это вообще возможно?

1 Ответ

0 голосов
/ 03 декабря 2018
   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]]

  • наконец вы просто преобразуетеэто для json-объекта с coerceTo("object"), который возвращает желаемый формат:

    {"ПРИНЯТО": 1, "ОТКАЗАНО": 1, "В ОЖИДАНИИ": 1}

...