【问题标题】:Pymongo aggregate() $projectPymongo 聚合()$项目
【发布时间】:2019-01-22 10:53:36
【问题描述】:

我想在使用聚合时排除“_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
                }
        }

我应该怎么做才能避免在 $project 中写入每个“字段”:True?

【问题讨论】:

    标签: python mongodb pymongo


    【解决方案1】:

    您可以使用$addFields 添加一个额外的字段,然后使用$project 删除_id

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

    【讨论】:

      猜你喜欢
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 2014-03-01
      • 2016-10-14
      • 1970-01-01
      • 2021-12-31
      相关资源
      最近更新 更多