2

グループを使用して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}]

4

1 に答える 1

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')
})

これら 2 つのマップ機能を組み合わせることもできますが、個人的には、わかりやすくするために、それらを分離した方がよいと思います。

r.exprデータ エクスプローラーにコピー アンド ペーストして機能するかどうかを確認できるように使用mapsしましたが、クエリの最後に最後の 2 つをコピー アンド ペーストするだけで、結果は同じになります。

結果:

[
  {
    "A": 14
  } ,
  {
    "B": 2
  }
]
于 2015-04-19T04:13:35.883 に答える