使用 Python 匹配 ArangoDb 中顶点数组中的属性
Match an attribute in an array on a vertex in ArangoDb using Python
我有一个顶点[a]的文档,它与文档[b]的顶点有一个边界,我想知道如何遍历顶点[a]的数组:
[a]: {"name": "Tom", "age": 30, "colors": ["green", "blue", "red"]}
[b}: {"city", "NY"}
我正在尝试如下:
mydb.execute_query cursor = (
"""
FOR i IN GRAPH_NEIGHBORS (
'my_graph', 'citys/ny',
{neighborExamples: {colors: 'green'}}
) RETURN i
"""
)
for doc in cursor:
print (doc)
但是return什么都没有!
如果我尝试数组以外的其他属性,它会正常工作。
目前GRAPH_NEIGHBORS()只支持Examples的相等比较。
您查询的是 "green" IN colors。
这现在只能通过 post-过滤来表达。
像这样:
mydb.execute_query cursor = ( """
FOR i IN GRAPH_NEIGHBORS ('my_graph', 'citys/ny', {})
FILTER 'green' IN i.colors RETURN i
""" ) doc is in cursor:
print (doc)
应该会给你想要的结果。
感谢 mchacki 和 dothebarth,你们让我意识到除了向我展示我如何进行搜索之外,还间接地向我展示了我使用了错误的功能。我完成了下面的代码并且 运行 完美。谢谢!
cursor = mydb.execute_query(
"""
FOR i IN GRAPH_VERTICES(
'my_graph',
{city:'NY'},
{}
)
FILTER 'green' IN i.colors
RETURN i.name
"""
)
for doc in cursor:
print(doc)
>>"Tom"
我有一个顶点[a]的文档,它与文档[b]的顶点有一个边界,我想知道如何遍历顶点[a]的数组:
[a]: {"name": "Tom", "age": 30, "colors": ["green", "blue", "red"]}
[b}: {"city", "NY"}
我正在尝试如下:
mydb.execute_query cursor = (
"""
FOR i IN GRAPH_NEIGHBORS (
'my_graph', 'citys/ny',
{neighborExamples: {colors: 'green'}}
) RETURN i
"""
)
for doc in cursor:
print (doc)
但是return什么都没有! 如果我尝试数组以外的其他属性,它会正常工作。
目前GRAPH_NEIGHBORS()只支持Examples的相等比较。 您查询的是 "green" IN colors。 这现在只能通过 post-过滤来表达。 像这样:
mydb.execute_query cursor = ( """
FOR i IN GRAPH_NEIGHBORS ('my_graph', 'citys/ny', {})
FILTER 'green' IN i.colors RETURN i
""" ) doc is in cursor:
print (doc)
应该会给你想要的结果。
感谢 mchacki 和 dothebarth,你们让我意识到除了向我展示我如何进行搜索之外,还间接地向我展示了我使用了错误的功能。我完成了下面的代码并且 运行 完美。谢谢!
cursor = mydb.execute_query(
"""
FOR i IN GRAPH_VERTICES(
'my_graph',
{city:'NY'},
{}
)
FILTER 'green' IN i.colors
RETURN i.name
"""
)
for doc in cursor:
print(doc)
>>"Tom"