MongoDB聚合group阶段如何将所有文档的_created字段存入结果
解决方案
你只需修改聚合管道中的$group阶段,新增字段通过MongoDB的$push累加器收集所有参与分组文档的_created字段即可,修改后的完整聚合语句如下:
[ { u"$match": { u"store_id": ObjectId("60418f5d427fa2f62c84fa0d"), u"_created": { u"$lte": datetime.strptime("2021-12-11 16:00:00.000000", "%Y-%m-%d %H:%M:%S.%f").replace(tzinfo = FixedOffset(-480, "-0800")), u"$gte": datetime.strptime("2019-12-31 16:00:00.000000", "%Y-%m-%d %H:%M:%S.%f").replace(tzinfo = FixedOffset(-480, "-0800")) } } }, { u"$group": { u"_id": 0, # 显式声明分组_id为0,避免歧义 u"total_items": { u"$sum": u"$total_items" }, u"total_value": { u"$sum": u"$total_value" }, u"total_order": { u"$sum": 1.0 }, # 新增字段收集所有参与分组文档的_created值 u"created_list": { u"$push": u"$_created" } } } ]
返回结果说明
修改后查询返回的结果会新增created_list字段,存储所有符合条件的文档的_created时间,格式示例如下:
{ "_id" : 0.0, "total_items" : NumberInt(245), "total_value" : 13454.45, "total_order" : 126.0, "created_list": [ ISODate("2021-03-05T01:55:07.077+0000"), // 其余符合条件的_created值按匹配顺序依次排列 ] }
内容的提问来源于stack exchange,提问作者Will Doan
相关产品推荐
相关产品推荐

