使用Python在ArangoDb中的顶点上匹配数组中的属性

使用Python在ArangoDb中的顶点上匹配数组中的属性,python,arangodb,Python,Arangodb,我有一个顶点[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',

我有一个顶点[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)
但是什么都不退! 如果我尝试数组以外的其他属性,它将正常工作。

现在GRAPH_Neights()仅支持示例的相等比较。 您查询的颜色是“绿色”。 目前,这只能通过后期筛选来表示。 像这样:

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"

少了一个支架,我已经修好了。现在应该可以了。