我有这样的查询(简化):
db.collection.aggregate([
{ $match: { main_id: ObjectId("58f0f67f50c6af16709fd2c7") } },
{
$group: {
_id: "$name",
count: { $sum: 1 },
sum: { $sum: { $add: ["$P31", "$P32"] } }
}
}
])
我从 Java 执行此查询,我想将其映射到我的类,但我不希望 _id
映射到 name
字段。因为如果我这样做:
@JsonProperty("_id")
private String name;
然后,当我将这些数据保存回 mongo 时(经过一些修改),数据被保存为 _id
而我想要生成一个真实的 Id。
那么,如何 重命名 _id
在 $group
操作之后?
原文由 mykola 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以通过在管道末尾添加一个
$project
阶段来实现此目的,如下所示:在线试用: mongoplayground.net/p/QpVyh-0I-bP