MongoDB两列之和

MongoDB两列之和,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我收集了以下文件: { "_id" : ObjectId("5785e5649b732ab238cfc519"), "name" : "Apple", "category" : "Fruit", "price" : 100, "discount" : 5 } { "_id" : ObjectId("5785e5709b732ab238cfc51a"), "name" : "Orange", "category" : "Fruit", "price" : 90, "discount" : 5 }

我收集了以下文件:

{ "_id" : ObjectId("5785e5649b732ab238cfc519"), "name" : "Apple", "category" : "Fruit", "price" : 100, "discount" : 5 }
{ "_id" : ObjectId("5785e5709b732ab238cfc51a"), "name" : "Orange", "category" : "Fruit", "price" : 90, "discount" : 5 }
{ "_id" : ObjectId("5785e5819b732ab238cfc51b"), "name" : "PineApple", "category" : "Fruit", "price" : 60, "discount" : 2 }
{ "_id" : ObjectId("5785e5969b732ab238cfc51c"), "name" : "Potatto", "category" : "Vegetable", "price" : 10, "discount" : 1 }
{ "_id" : ObjectId("5785e5c39b732ab238cfc51d"), "name" : "Cabbage", "category" : "Vegetable", "price" : 5, "discount" : 1 }
和预期结果

{ "_id" : { "category" : "Vegetable" }, "total" : 15 }
{ "_id" : { "category" : "Vegetable" }, "total" : 265 }
我使用mongoDB查询来查找包含蔬菜类别的合计,如下所示

db.stall.aggregate([{$group: {_id: {category: "Vegetable" }, total: {$sum: "$price"}}}]);
但我得到了以下结果

{ "_id" : { "category" : "Vegetable" }, "total" : 15 }
{ "_id" : { "category" : "Vegetable" }, "total" : 265 }

我应该如何找到蔬菜类别的总计和折扣列的总和。

我不确定你的问题是否正确,但这将过滤蔬菜类别的价格总和和折扣总和

db.stall.aggregate([
   {
      {$match : {category : "Vegetable"}},
      {$group : {_id: "$category", sumOfTotal : {$sum : "$price"}, sumOfDiscount : {$sum : "$discount"}}}
   }
])

我不确定你的问题是否正确,但这将过滤蔬菜类别的价格总和和折扣总和

db.stall.aggregate([
   {
      {$match : {category : "Vegetable"}},
      {$group : {_id: "$category", sumOfTotal : {$sum : "$price"}, sumOfDiscount : {$sum : "$discount"}}}
   }
])

您应该考虑用预期的输出而不是表来显示示例文档。是的,我肯定会更新。您应该考虑用预期的输出而不是表来显示示例文档。当然,我会更新谭,谢谢您的回答。我收到以下错误消息SyntaxError:意外令牌{谢谢Tan,工作正常:)group by缺少“_id”。嗨,Tan,谢谢你的回答。我收到以下错误消息SyntaxError:意外令牌{谢谢Tan,工作正常:)group by缺少“_id”。