2015-01-10 58 views
3

我有一個文檔嵌入列表中,我需要查詢匹配一系列字符串的值的文檔。ArangoDB查詢屬性嵌入列表

我的文檔:

enter image description here

正如你所看到的,我有一個常規文檔。該文檔內是每個文檔具有未知長度的「類別」。內部類別我有「自信」和「標題」。我需要查詢以查找具有與ArrayList中的標題列表匹配的標題的文檔。我想會的工作的查詢是:

FOR document IN documents FILTER document.categories.title IN @categories RETURN article

@categories是標題列表的ArrayList。如果ArrayList中的任何標題都在文檔中,我希望它被返回。

此查詢似乎正在返回null。我不認爲它是下降到比較ArrayList到我的文檔中的「標題」字段的水平。我知道我可以使用[#]訪問「類別」列表,但我不知道如何搜索「類別」中的「標題」。

回答

3

查詢

如果 document.categories是一個標
FOR document IN documents 
    FILTER document.categories.title IN @categories 
    RETURN article 

會的工作,但如果document.categories是一個數組,它不會工作。原因是IN運算符左側的數組不會自動展開。

要查找的查詢可以改寫的文件如下:

FOR document IN documents 
    FILTER document.categories[*].title IN @categories 
    RETURN document 

FOR document IN documents 
    LET titles = (
    FOR category IN document.categories 
     RETURN category.title 
) 
    FILTER titles IN @categories 
    RETURN document 

除此之外,article將是未知的,除非有一個名爲article集合。它應該讀作documentdocument.article