2015-08-08 42 views
0

正如本頁底部寫的http://orientdb.com/docs/2.0/orientdb.wiki/SQL-Functions.html,我們可以在OrientDB中構建我們的自定義函數。但是,此示例僅顯示執行內聯操作的自定義函數。有沒有辦法編寫一個執行聚合操作的OrientDB函數?像sum(fieldName)這樣的東西。所以問題更多的是我們如何在我們的自定義函數中訪問該字段的'當前'記錄值,以便我們可以執行聚合操作。OrientDB寄存器自定義函數用於聚合Java

回答

2

我建議你去看看這個:OSQLFunctionSum

的代碼是很簡單的,但重要的概念都如下:

  1. aggregateResults()必須返回true讓OrientDB知道,這是一個集合函數
  2. OrientDB將爲您聚合記錄,並將爲每個聚合返回一個函數實例。
  3. 你必須保持總量數據在函數實例(見private Number sum;中的例子)
  4. ​​方法查詢期間調用的每一條記錄,
  5. getResult()必須返回集合結果