OrientDB 为聚合注册自定义函数 Java

OrientDB Register Custom Function for Aggregation Java

如本页底部所写 http://orientdb.com/docs/2.0/orientdb.wiki/SQL-Functions.html ,我们可以在 OrientDB 中构建自定义函数。但是,此示例仅显示了执行内联操作的自定义函数。有什么方法可以编写一个执行聚合操作的OrientDB函数吗?类似 sum(fieldName) 的东西。所以问题更多的是我们如何在我们的自定义函数中访问该字段的 'current' 记录值,以便我们可以执行聚合操作。

我建议你看看这个:OSQLFunctionSum

代码很简单,但重要的概念如下:

  1. aggregateResults() 必须 return true 让 OrientDB 知道它是一个聚合函数
  2. OrientDB 将为您汇总记录,并且将为每个汇总return 一个您的函数实例。
  3. 您必须在函数实例中保留聚合数据(参见示例中的 private Number sum;
  4. execute() 方法在查询期间为每条记录调用
  5. getResult() 必须 return 聚合结果