MongoDB聚合后如何将days数组的内嵌data对象字段提升至父级
可以实现,你可以在现有聚合管道后追加一个$set阶段处理days数组即可,核心是通过$map遍历数组元素,配合$mergeObjects将内嵌data的字段提升到父层级。
具体的聚合阶段示例如下:
// 你原来的聚合逻辑保留在前方,追加以下阶段 { $set: { "data.days": { $map: { input: "$data.days", as: "dayItem", in: { $mergeObjects: [ // 保留days元素原有的外层字段 { _id: "$$dayItem._id", day: "$$dayItem.day" }, // 合并data对象的所有字段到父层级 "$$dayItem.data", // 覆盖data内部的_id,保留days元素原本的_id { _id: "$$dayItem._id" } ] } } } } }
如果需要保留data内部的_id字段,删除上述代码中最后一行的{ _id: "$$dayItem._id" }即可。
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

