如何解决如何使用gremlin和python在neptune中进行布尔运算?
我正在尝试执行一个查询,在该查询中我需要执行多个布尔操作,但是不知道该怎么做。
查询类似于(A and B) or (C and D)
我第一次尝试
g.V()\
.has("attra",P.lte(20))\
.has("attrb",P.gte(10))\
.or_()\
.has("attrc",P.lte(20))\
.has("attrd",P.gte(10))
,但是在查询中的or_()
被or
之后,结果却不是我想要的。因为我还有其他复杂的布尔逻辑。
我也尝试过
g.V()\
.or_(
has("attra",P.lte(20)).and().has("attrb",P.gte(10)),has("attrc",P.lte(20)).and().has("attrd",P.gte(10))
)
但是它表示has
未定义。这是怎么做的?
我们将不胜感激
编辑:我的文件中包含以下导入
from __future__ import print_function
from gremlin_python.structure.graph import Graph
from gremlin_python.process.strategies import *
from gremlin_python.process.traversal import *
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
from gremlin_python.process.graph_traversal import __ as AnonymousTraversal
解决方法
我找到了has
的定义位置。
可以在这里找到
from gremlin_python.process.graph_traversal import __ as AnonymousTraversal
所以我们要做
has = AnonymousTraversal.has
并像这样查询
g.V()\
.or_(
has("attra",P.lte(20)).and().has("attrb",P.gte(10)),has("attrc",P.lte(20)).and().has("attrd",P.gte(10))
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。