按特定属性的最高值选择集合元素

时间:2017-08-14 19:25:59

标签: select collections orientdb

我的数据库中存储了多个文档,格式如下:

{
    "text": "foo",
    "items": [{
        "num": 1,
        "value": 1.1
    }, {
        "num": 42,
        "value": 3.14
    }]
}

{
    "text": "bar",
    "items": [{
        "num": 3,
        "value": 5.0
    }]
}

我想从每个文档中检索" text"和"价值"具有最高" num"的项目。所以在这个例子中我的结果是:

{
    "text": "foo",
    "value": 3.14
}

{
    "text": "bar",
    "value": 5.0
}

有没有办法用OrientDB解决这个问题?

1 个答案:

答案 0 :(得分:1)

我试过这些记录

enter image description here

我使用了这个查询

select rid,items.num as num,items.value as value from (
select @rid,items,$a[0].max as max from test 
let $a=(select max(items.num) as max from $parent.$current)
unwind items
)
where items.num=max

我得到了

enter image description here

祝你好运, 的Alessandro