【问题标题】:Query multiple collections Arangodb查询多个集合 Arangodb
【发布时间】:2019-02-26 17:20:56
【问题描述】:
FOR col_name IN ['col_1', 'col_2']

FOR d IN FULLTEXT(col_name, 'label', @value)

RETURN d

无效

但是

FOR d IN FULLTEXT('col_1', 'label', @value)

RETURN d

工作正常

我正在使用 arango 3.4.2-1

【问题讨论】:

    标签: arangodb aql


    【解决方案1】:

    一般你可以像这样查询两个集合:

    FOR col1doc IN col_1
      FILTER col1doc.foo == 'bar'
        FOR col2doc IN col_2
          FILTER col1doc.joinfield == col2doc.joinfield
    RETURN {col1doc: col1doc, col2doc: col2doc} 
    

    作为它的documented in the AQL manual for joins

    请注意,简单的字符串相等可以使用FILTERs 完成,不需要全文索引。

    对于两个集合的旧全文索引,您可以使用如下子查询:

    let col1Documents = (FULLTEXT(col_1, 'label', @value))
    let col2Documents = (FULLTEXT(col_2, 'label', @value))
    
    RETURN CONCAT(col1Documents, col2Documents)
    

    实现这一点的更现代的方法是to use ArangoSearch views,它可以处理大量集合。​​

    【讨论】:

    • 谢谢!这工作正常,但如果集合 2 中没有数据,则不会返回任何内容,即使集合 1 有数据。即使 col2doc 没有数据,如何从 col1doc 获取字段以返回?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 2019-05-09
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多