gpt4 book ai didi

python - Gremlin Python : Selecting the vertex with the earliest date and by alphanumeric order

转载 作者:行者123 更新时间:2023-12-01 00:43:31 27 4
gpt4 key购买 nike

我使用 Neptune 作为我的图形数据库。

我有带有 ID (UUID)、标签和日期的顶点。

我可以像这样提取多个顶点的所有属性:

g.V('633378c3-b016-433a-a3ca-c1662982f970').valueMap(True).as_('test1').V('6e5db9a0-2946-4d98-9657-07a3fe825598').valueMap(True).as_('test2').select('test1', 'test2').toList()

[{'test11': {<T.id: 1>: '633378c3-b016-433a-a3ca-c1662982f970', 'Date': [datetime.datetime(2019, 7, 7, 20, 0)], <T.label: 3>: 'sample_id'}, 'test2': {<T.id: 1>: '6e5db9a0-2946-4d98-9657-07a3fe825598', 'Date': [datetime.datetime(2019, 7, 7, 20, 0)], <T.label: 3>: 'sample_id'}}]

但我只想拉出日期最早的顶点,如果两个日期相同,我想按字母数字顺序拉出较早的那个。

如果我尝试

g.V('633378c3-b016-433a-a3ca-c1662982f970').valueMap(True).as_('test1').V('6e5db9a0-2946-4d98-9657-07a3fe825598').valueMap(True).as_('test2').select('test1', 'test2').order().by('Date').toList()

我收到错误:

gremlin_python.driver.protocol.GremlinServerError: 498: {"requestId":"101ab1d2-ced8-4a20-adc9-5deb97e1e801","code":"UnsupportedOperationException","detailedMessage":"java.util.LinkedHashMap cannot be cast to org.apache.tinkerpop.gremlin.structure.Element"}

最佳答案

您收到该错误的原因是因为您试图将 valueMap() 的结果(即 Map)视为图形 Element > 因为 by('Date') 语法仅适用于 Element。鉴于您想要执行的操作的描述,我认为您可以将遍历简化为:

g.V('633378c3-b016-433a-a3ca-c1662982f970','6e5db9a0-2946-4d98-9657-07a3fe825598'). 
order().by('Date').by(T.id).
limit(1).
valueMap(True).toList()

我假设“按字母数字顺序排列的前面一个”指的是 UUID,这就是为什么我使用 T.id 添加第二个 by() 调制器。

如果您想保留两个顶点以供以后在遍历中使用,那么您有多种选择。你可以这样做:

g.V('633378c3-b016-433a-a3ca-c1662982f970','6e5db9a0-2946-4d98-9657-07a3fe825598'). 
order().by('Date').by(T.id).
fold()

并分别使用limit(local,1)tail(local)按位置访问它们。使用相同的方法,您还可以将它们 project()Map:

g.V('633378c3-b016-433a-a3ca-c1662982f970','6e5db9a0-2946-4d98-9657-07a3fe825598'). 
order().by('Date').by(T.id).
fold().
project('a','b').
by(limit(local,1)).
by(tail(local))

关于python - Gremlin Python : Selecting the vertex with the earliest date and by alphanumeric order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57170529/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com