如何在spring boot中求和文档的数组大小(包括父项)?

z4iuyo4d  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(274)

我在mongodb集合中有以下文档:

{
    "label": "first",
    "items": [
        {"foo":"bar"},
        {"foo":"foobar"},
    ]
},
{
    "label": "first",
    "items": [
        {"foo":"foobar"},
    ]
},
{
    "label": "second",
    "items": [
        {"foo":"ignored"},
    ]
}

我想得到数组长度+项目计数的总和,其中 labelfirst . 所以我想用mongodb在spring中实现一个聚合方法,以得到最后的数字5。
3(数组长度总和)+2(找到的项目已计数)。

jtw3ybtb

jtw3ybtb1#

Aggregation.newAggregation(
    Aggregation.match(
        where("label").`is`("first")
    ),

    Aggregation.group()
        .sum(
            ArithmeticOperators.Add.valueOf(1)
                .add(ArrayOperators.Size.lengthOfArray("items"))
        )
        .`as`("count")
)

这个适合我。

相关问题