python - Pymongo 聚合() $project

标签 python mongodb pymongo

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

最佳答案

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

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

关于python - Pymongo 聚合() $project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51860786/

相关文章:

mongodb - MongoReplicaSetClient 不会在 celery 工作人员中重新连接

python - buildozer 版本需要支持 AAB(Android App Bundle)的 python-for-android 版本

python - 无法在 Twisted 中获取上传的文件

python - 如何将格式化数字转换为常规数字(不带逗号或小数)

javascript - Populate() 引用嵌套在对象数组中

mongodb - 使用随机数更新集合中的所有文档

c# - MongoDb c# 2.0 驱动程序 AddToSet 方法

python - Django 和 Ajax 。无限滚动实现的正确方法

mongodb - 使用 Python 使用字符串查询 MongoDB 以获取 _id 的正确方法是什么?

python - 如何启动spyder ide?