我在mongodb中有一个表,其中包含销售交易,每个交易包含特定销售交易的userId、时间戳和相应的收入值。
现在,我想查询这些用户,并获得所有用户的所有交易的最小值、最大值、总和和平均值。应该只在两个给定的时间戳之间有交易,并且应该只包括收入总和大于指定值的用户。
我在mongosh中编写了相应的查询:
db.salestransactions.aggregate(
{
"$match": {
"timestamp": {
"$gte": new ISODate("2020-01-01T19:28:38.000Z"),
"$lte": new ISODate("2020-03-01T19:28:38.000Z")
}
}
},
{
$group: {
_id: { userId: "$userId" },
minimum: {$min: "$revenue"},
maximum: {$max: "$revenue"},
sum: {$sum: "$revenue"},
avg: {$avg: "$revenue"}
}
},
{
$match: { "sum": { $gt: 10 } }
}
]
)
这个查询绝对可以正常工作。
如何在PanacheMongoRepository中使用 quarkus 实现这个查询?
有什么想法吗?
谢谢!
1条答案
按热度按时间avwztpqn1#
有点晚了,但你可以这样做。
定义回购协议
此代码是在kotkin
mongoCollection()会自动在实体YourView上执行,这是一个Map输出中相关属性的调用。
(您的实体.类)
注解。
希望这个有用。