簡體   English   中英

使用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)

但不回報任何東西! 如果我嘗試除數組以外的其他屬性,它可以正常工作。

現在GRAPH_NEIGHBORS()僅支持示例的相等比較。 您要查詢的是“綠色”IN顏色。 現在只能通過后過濾表示。 像這樣:

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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM