代码之家  ›  专栏  ›  技术社区  ›  asn

“errmsg”:“无法识别的管道阶段名称:'totalAmount'”

  •  1
  • asn  · 技术社区  · 6 年前

    我正在学习MongoDB并尝试实现与聚合相关的命令。

    收藏如下:

    { "_id" : ObjectId("5bbc185f132cf4170a2f5fd3"), "custID" : "A123", "Amount" : 500, "status" : "A" }
    { "_id" : ObjectId("5bbc187d132cf4170a2f5fd4"), "custID" : "A123", "Amount" : 250, "status" : "A" }
    { "_id" : ObjectId("5bbc188d132cf4170a2f5fd5"), "custID" : "B212", "Amount" : 200, "status" : "A" }
    

    第一个查询是 Find out total amount for individual customer ID having status ‘A’

    从这里我编码了:

    db.emp.aggregate([{$match:{'status':'A'}},{'totalAmount':{$sum:'$Amount'}}])

    但是得到这个错误:

    "errmsg" : "Unrecognized pipeline stage name: 'totalAmount'"

    我哪里出错了?

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

    你可以在下面试试

    totalAmount 不是聚合管道阶段。mongodb pipeline stages中给出的一些操作符只能用于 aggregation pipeline . 你还需要使用 $group custId $sum

    db.emp.aggregate([
      { "$match": { "status": "A" }},
      { "$group": {
        "_id": "$custID",
        "Amount": { "$sum": "$Amount" }
      }}
    ])