MongoDb分区在查询中不工作

MongoDb分区在查询中不工作,mongodb,Mongodb,这就是我的数据的样子 { "_id" : ObjectId("5919f19716e64ad662bd753b"), "cardNumber" : "11111111115523", "transID" : "5645344133546", "transDate" : "1/1/16", "merchant" : "Publix", "mtype" : "Groceries", "merchantCode" : "1", "transAmount" : 100 }

这就是我的数据的样子

{
  "_id" : ObjectId("5919f19716e64ad662bd753b"),
  "cardNumber" : "11111111115523",
  "transID" : "5645344133546",
  "transDate" : "1/1/16",
  "merchant" : "Publix",
  "mtype" : "Groceries",
  "merchantCode" : "1",
  "transAmount" : 100
}

/* 2 */
{
  "_id" : ObjectId("5919f20416e64ad662bd753c"),
  "cardNumber" : "11111111115523",
  "transID" : "5645344136544",
  "transDate" : "1/4/16",
  "merchant" : "Sears",
  "mtype" : "Clothing and Shoes",
  "merchantCode" : "2",
  "transAmount" : 150.66
}
 /* 3 */
{
  "_id" : ObjectId("5919f20c16e64ad662bd753d"),
  "cardNumber" : "11111111115523",
  "transID" : "564535522233344",
  "transDate" : "1/4/16",
  "merchant" : "Shell",
  "mtype" : "Gasoline / Fuel",
  "merchantCode" : "3",
  "transAmount" : 25
}
我想要的结果是: 所有“transAmount”的总和乘以100,再除以此人花费的总额(例如:(totalByCategories)*100/(sumOfAllTransactiosAmount)),然后输出需要按“merchantCode”排序,以便每个子集都有类别和相应的操作结果。
我让它们单独工作,但当我尝试进行完整查询时,它给出了一个错误代码16420聚合失败

下面是我的查询的样子:

var denominator = db.getCollection('Transactions').aggregate({
$group: { 
    "_id": null, 
    "total": {$sum:"$transAmount"}
  }
}, { $project: {_id:0, total: "$total"}});

db.getCollection('Transactions').aggregate([{
$group: { 
    _id: '$merchantCode', 
    total: {
        $sum: { $multiply: ['$transAmount', 100 ]}

 }}},
   { $project: { 

       percentage: { 
         $divide: [ 
           "$total", 
          denominator
          ] 
      } 
   }
 }
])

提前感谢您的帮助

分母的值是多少?在这种情况下,数据仅为275.66,因为是所有“transAmount”的总和,但在操作中,我认为由于某些原因未定义,我不知道如何修复它。聚合返回“游标”,而不是单个响应。您正试图将其分配给分母为
的单数值。相反,您需要
var denominator=db.getCollection('Transactions').aggregate({“$group”:{“\u id”:null,“total”:{“$sum”:“$transAmount”}}}}}。)toArray()[0]。amount
这只是来自单元素数组响应的
total
属性的值。非常感谢,我通过添加“denominator.toArray()[0]。操作本身中的“总计”。祝您愉快,编码愉快!