代码之家  ›  专栏  ›  技术社区  ›  sanyassh Khushboo Tahir

Pymongo aggregate()$项目

  •  1
  • sanyassh Khushboo Tahir  · 技术社区  · 6 年前

    我想排除'u id'字段,并在使用聚合时将其替换为'action_id'字段。我必须在$project中指定我不想排除的所有其他字段的问题。这是我的问题:

    cursor = db.aggregate(
            {
                '$group': {
                    '_id': '$somefield',
                    'count': {'$sum': 1},
                    'average_latency': {'$avg': '$latency'}
                }
            },
            {
                '$project': {
                    'action_id': '$_id',
                    '_id': False,
                    'count': True,
                    'average_latency': True
                    }
            }
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ashh    6 年前

    你可以用 $addFields 添加额外字段,然后 $project _id

    cursor = db.aggregate(
      { '$group': {
        '_id': '$somefield',
        'count': { '$sum': 1 },
        'average_latency': { '$avg': '$latency' }
      }},
      { '$addFields': { 'action_id': '$_id' }},
      { '$projects': { '_id': False }}
    )