You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pymongo的aggregate与MongoDB的$project提取字典键值到父字典

解决方案

方案1:修改MongoDB聚合语句(推荐)

直接在数据库查询阶段完成字段提权,无需额外做后处理,修改后的代码如下:

cursor_processes = collection.aggregate([
    # 统一字段大小写,解决部分文档使用大写开头Processes不生效的问题
    {
        '$addFields': {
            'processes': { '$ifNull': ['$processes', '$Processes'] }
        }
    },
    {
        '$unwind': "$processes"
    },
    # 合并_id与processes内的字段作为新的根文档
    {
        '$replaceRoot': {
            'newRoot': {
                '$mergeObjects': [
                    { '_id': '$_id' },
                    '$processes'
                ]
            }
        }
    }
])

results = list(cursor_processes)

方案2:Python层面处理返回结果

如果不想修改聚合逻辑,也可以拿到查询结果后手动重构字段结构,代码如下:

cursor_processes = collection.aggregate([
    {
        '$unwind':"$processes"
    },
    {
        '$project': {
            "_id": 1,
            "processes": 1
        }
    }
])

results = []
for item in cursor_processes:
    res_item = {'_id': item['_id']}
    res_item.update(item['processes'])
    results.append(res_item)

内容的提问来源于stack exchange,提问作者Angel Rivas Hidalgo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:45:00