【问题标题】:Change alias name for a field in Mongo Query在 Mongo Query 中更改字段的别名
【发布时间】:2021-09-13 16:05:42
【问题描述】:

当我执行以下查询时,我得到了正确的响应

db.getCollection('register').aggregate( [
  { $match: {"$or":[{"$and":[{"src":{"$in":["CR","FR"]}},{"status":{"$in":["Draft","InReview","Returned"]}},{kid:3940035}]}]} },
  { $group: {'_id':"$kid",'count':{'$sum':1}} }
] )

但我需要将孩子显示为知识 ID。因此,如果从 _id 更改为 Knowledge_id,查询将返回错误

字段'knowledge_id'必须是服务器上的累加器对象'

更新查询:

db.getCollection('register').aggregate( [
      { $match: {"$or":[{"$and":[{"src":{"$in":["CR","FR"]}},{"status":{"$in":["Draft","InReview","Returned"]}},{kid:3940035}]}]} },
      { $group: {'knowledge_id':"$kid",'count':{'$sum':1}} }
    ] )

请帮忙!!

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    您可以在分组之后再添加一个阶段(分组要求始终存在 _id):

     {$project:{"knowledge_id":"$_id", count:1}}
    

    【讨论】:

    • 如果我做一个 { $group: {'_id':"$kid",'count':{'$sum':1}} } 它可以工作。但是如果做一个 { $group: {'knowledge_id':"$_id",'count':{'$sum':1}} }。它不工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 2020-05-25
    相关资源
    最近更新 更多