1

rethinkDB にこのようなテーブルがあります。

[{
    "Id": [
        12,
        13
    ],
    "group": "79",
    "go_Id": []
}, {
    "Id": [
        12,
        12,
        12,
        14
        14
    ],
    "group": "91",
    "go_Id": [
        16,
        16,
        16,
        19,
        19,
        20
    ]
}, {
    "Id": [
        12,
        12,
        13,
        13,
        11
    ],
    "group": "second",
    "go_Id": [
        16,
        17,
        17,
        16,
        17,
        17
    ]
}]

Id と go_Id には、個々の ID の数とそれらの出現回数が必要です。したがって、たとえば、目的の出力は

   [{
       "Id": [
           12: 1
           13: 1
       ],
       "group": "79",
       "go_Id": []
   }, {
       "Id": [
           12: 3
           14: 2
       ],
       "group": "91",
       "go_Id": [
           16: 3,
           19: 2,
           20: 1
       ]
   }, {
       "Id": [
           12: 2,
           13: 2,
           11: 1
       ],
       "group": "second",
       "go_Id": [
           16: 2,
           17: 4,
       ]
   }]

どうすればいいですか?

ID に基づいてグループ化してからカウントしようとしましたが、うまくいかないようです。何かのようなものr.table('dev').group(r.row('Id"))

4

1 に答える 1

2

このようなものが動作するはずです:

r.table('dev').merge(function(row) {
  return {Id: row('Id').group(function(x) { return x; }).count().ungroup()};
})
于 2015-09-11T16:26:19.807 に答える