gpt4 book ai didi

java - 带有对象推送的 Morphia 聚合阶段组

转载 作者:可可西里 更新时间:2023-11-01 09:34:16 28 4
gpt4 key购买 nike

我使用的是最新版本的吗啡 (1.3.2),我正在尝试在 Java 中复制以下成功的 mongodb 聚合阶段:

{
_id: null,
pv: { $push: { t: '$_id', c: '$c' }}
}

阶段的示例输入是:

{ 
"_id" : NumberLong(1487808017),
"c" : NumberInt(1)
}
{
"_id" : NumberLong(1487808210),
"c" : NumberInt(1)
}
{
"_id" : NumberLong(1487808914),
"c" : NumberInt(1)
}

预期的输出是:

{ 
"_id" : null,
"pv" : [
{
"t" : NumberLong(1487808017),
"c" : NumberInt(1)
},
{
"t" : NumberLong(1487808210),
"c" : NumberInt(1)
},
{
"t" : NumberLong(1487808914),
"c" : NumberInt(1)
}
}

到目前为止我最接近的是:

.group(Group.grouping("pv", Accumulator.accumulator("$push", (Object) "{t: '$_id', c: '$c'}")))

但是吗啡将我的累加器解释为一个明确的字符串。

如果有人可以建议正确的 Java 语法来实现此操作,我们将不胜感激。

最佳答案

啊,经过数小时的搜索,我在 OP 的几分钟内得出了答案:

.group(Group.grouping("pv", Group.grouping("$push", Projection.projection("t", "_id"), Projection.projection("c", "c"))))

我在浏览吗啡测试时遇到了可能的解决方案 here .

关于java - 带有对象推送的 Morphia 聚合阶段组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42422268/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com