gpt4 book ai didi

titan - 检查 Gremlin/TitanDB 中的顶点属性等效性

转载 作者:行者123 更新时间:2023-12-02 01:26:53 25 4
gpt4 key购买 nike

如果我可以这样检查属性的值:
g.V().hasLabel('appUser').has('myId','1234').values('isPrivate')
==>假

但是当我在 if 中检查该值是否为 false 时,没有返回我期望的结果:
if(g.V().hasLabel('appUser').has('myId','1234').values('isPrivate') == 'false'){'is false'}else{'is true'}
==> 是真的

同样,这也没有返回我所期望的:
if(!g.V().hasLabel('appUser').has('myId','1234').values('isPrivate')){'is false'}else{'is true'}
==> 是真的

我应该如何更新它以执行条件检查?

最佳答案

.values() 返回一个 Traversal,它是一个 Iterable ( see TinkerPop 3.1.1 JavaDoc )。您必须调用 .next() 才能实际检索属性值。

提供的查询可以这样写。

if(!g.V().hasLabel('appUser').has('myId','1234').values('isPrivate').next()){'is false'}else{'is true'}

注意在 .values('isPrivate') 之后调用 .next()

当使用 Gremlin 控制台时,Traversal 对象会自动迭代 (.iterate()),因此看起来很神奇实际上并非如此。在脚本中间(或在 Gremlin 控制台之外),您必须自己 .next().iterate() Traversal 才能执行它,无论该 Traversal旨在检索元素(如当前用例)或改变图形。

关于titan - 检查 Gremlin/TitanDB 中的顶点属性等效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36580167/

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