Gremlin过滤器计数

时间:2018-06-21 16:44:19

标签: azure-cosmosdb gremlin

在CosmosDB Gremlin API中使用此查询:

g.V().has('person', 'name', 'John').as('his')
.out('bought').aggregate('self')
.out('made_by')

我有下一个输出:

[
  {
    "id": "100",
    "label": "brand",
    "type": "vertex",
    "properties": {
      "name": [
        {
          "id": "233b77e7-7007-4c08-8930-99b25b67e493",
          "value": "Apple"
        }
      ]
    }
  },
  {
    "id": "100",
    "label": "brand",
    "type": "vertex",
    "properties": {
      "name": [
        {
          "id": "233b77e7-7007-4c08-8930-99b25b67e493",
          "value": "Apple"
        }
      ]
    }
  },
  {
    "id": "101",
    "label": "brand",
    "type": "vertex",
    "properties": {
      "name": [
        {
          "id": "f3e238e2-f274-489c-a69c-f1333403ee8e",
          "value": "Google"
        }
      ]
    }
  }
]

有没有办法只选择数量大于1(在这种情况下为Apple)的品牌?

1 个答案:

答案 0 :(得分:3)

我认为您只需要groupCount()然后使用过滤器即可:

g.V().has('person', 'name', 'John').as('his').
  out('bought').aggregate('self').
  out('made_by').
  groupCount().
  unfold().
  where(select(values).is(gt(1))).
  select(keys)

您可以先groupCount(),然后unfold() Map的结果,以便可以用where()过滤条目。