首页 > 解决方案 > ArangoDB 基于子属性的多个过滤器检索父对象

问题描述

我有一个 Person 对象如下

 {
   name: 'John Doe'
   properties: 
      [
         {
            name: 'eyeColor', 
            value: 'brown'
         },
         {
            name: 'age', 
            value: 25
         },
         {
            name: 'interest', 
            value: 'reading'
         },
         {
            name: 'interest', 
            value: 'diving'
         }
      ]
 }

现在我希望能够根据多个属性过滤我的对象。在伪代码中:

Return all people for which 
 
there exists any p.property such that 
 p.property.propertyname == 'interest'
 AND p.property.propertyvalue == 'reading'

AND there exists any p.property such that
 p.property.propertyname == 'age'
 AND p.property.propertyvalue < 30

在没有太多中间结果的情况下,最简洁和可扩展(我希望能够应用这些过滤器中的 N 个)是什么?

标签: arangodb

解决方案


推荐阅读