エッジプロパティキーとして時間を持つ2つの頂点間のエッジのリストを取得しています。 例: A - > B(時間= T1、年齢= 20)、A - > B(時間= T2、年齢= 30) ... Iよりも大きいエッジをフェッチする必要がgremlinは時間に基づいてエッジをフィルタリングし、最大値をフェッチします
時間を与えられ、プロパティの最大値を取る '年齢'
コード例:
val end_time = System.currentTimeMillis() - duration
val r = graph.V().has(ID, name).outE.filter { it: Edge =>
(it.property(time).value() > end_time)
}
println("r.values("age").max().headOption().get)
これはオプション[バイト]形式で返します。
これを行うにはより良い方法がありますか?また、私は整数の値が必要です。
答えをありがとう。実際に私のクエリは、タイムスタンプが与えられた時間より長いすべてのエッジで、** age **プロパティの最大値を取得する方法です。この 'graph.V()。has(ID、 'A').outE()。のようなクエリーを修正しました。(_。value(" time ")は(P.gt(end_time)年齢 ")。min()。head'私はバイトを返します。私はIntegerとしてそれを必要とします。どうすればintに変換できますか? – Gopi
私は自分の答えを編集して、フィルタされたエッジの最大年齢を得る方法も含めました。しかし、私は本当にあなたの正しい返品の種類を得ることの問題であなたを助けることはできません。 Gremlinのどのバージョンを使用していますか? –
あなたの質問に「scala」というタグが付いていることに気づいたので、あなたの問題はGremlin-Scalaに固有の問題かもしれません。 –