目前我有一个以时间戳作为字符串属性的图
g.V().order().by('timestamp', '10')
这会导致排序时出现问题,因为字符串排序不同于数字排序。
String sorting : 1, 10, 2
Numeric sorting : 1, 2, 10
在gremlin中是否有任何方法可以将所有时间戳属性转换为long(数字)或如何查询gremlin以使用数字排序。开放供建议。
如果我将order.desc与timestamp属性一起使用,它将引发空指针异常,但order.decr可以正常工作。你知道吗?提前谢谢。
1条答案
按热度按时间bwitn5fc1#
如果要将所有字符串转换为整数,最简单的方法是在应用程序中按照以下行进行:
使用gremlin获取属性
在应用程序中将其转换为整数
使用gremlin写回值并替换上一个值(确保使用cardinality.single关键字)。
另一种方法是将图形导出到csv,更新csv并重新加载它。根据图形的大小,这可能是一个更好的选择。
另一种方法是使用内嵌代码(lambdas),但是如果您使用的是amazon neptune,那么这是不允许的。
至于order.decr和order.desc都应该可以工作,除非你的neptune引擎版本或者gremlin客户端版本在相当长的一段时间内处于后台。