1
鑑於數據:是否可以在Spring Data MongoDB中將group()與ArrayOperators.arrayOf()結合使用?
{
"_id" : ObjectId("58b7fb9acdcf58886fa86136"),
"cost" : 50,
"nodes" : [
4, 8, 15, 16, 23, 42
]
}
{
"_id" : ObjectId("58b7fba3cdcf58886fa86137"),
"cost" : 25,
"nodes" : [
1, 2, 3, 4, 23, 6
]
}
{
"_id" : ObjectId("58b7fbaecdcf58886fa86138"),
"cost" : 75,
"nodes" : [
1, 2, 17, 19, 20, 21
]
}
我可以由第二元件這樣的陣列中使用聚合MongoDB中到組:
db.stuff.aggregate([
{
"$group": {
"_id": {"$arrayElemAt": ["$nodes", 1]},
"costs": {$sum: "$cost"}
}
}])
在Spring數據MongoDB中,我最終使用以下Java代碼來獲得相同的結果:
Aggregation aggTest = Aggregation.newAggregation(
project()
.and(ArrayOperators.arrayOf("nodes").elementAt(1)).as("node")
.and("cost").as("cost"),
group("node").sum("cost").as("costs")
);
是否有可能結合在Spring數據星期一使用組()與ArrayOperators.arrayOf()的ElementAt。 goDB,因此刪除額外的項目()?
不是我想聽到的,但感謝的替代品。我將研究爲什麼Group不會爲_id採用AggregationExpression。 –