首页 > 解决方案 > 执行聚合时出现mongodb错误

问题描述

感谢您对此的帮助和评论。我一直在运行 mongodb 没有任何问题。

我正在进行大型聚合,一段时间后我收到以下错误:

com.mongodb.MongoCommandException:命令失败,出现错误 8 (UnknownError):服务器 mongo1:27017 上的“断言 src/mongo/db/pipeline/value.cpp:1365”。完整的响应是 { "ok" : 0.0, "errmsg" : "assertion src/mongo/db/pipeline/value.cpp:1365", "code" : 8, "codeName" : "UnknownError" }

正在执行的查询类似于:

db.getCollection('saft_documents').aggregate([
    { 
       $match:{invoiceDate: {$gte: new ISODate("2019-01-01T00:00:00.000Z"), $lte: new ISODate("2019-01-07T00:00:00.000Z")}}
    },
    {
       $unwind:"$lines"
    },
    {
       $group:{
               _id:{taxEntity:"$taxEntity",invoiceType:"$invoiceType",invoiceStatus:"$invoiceStatus", productCode:"$lines.productCode",productDesc:"$lines.productDescription"},
               numberOfLines:{$sum:1},
               quantity:{$sum:"$lines.quantity"},
               creditAmount:{$sum:"$lines.creditAmount"},
               debitAmount:{$sum:"$lines.debitAmount"},
               taxPayableRec:{ 
                 $sum:{  $cond: [ 
                         {$ifNull: ['$lines.taxBase', false]},
                         {$multiply:["$lines.taxBase",{$divide:["$lines.taxPercentage",100]}]}, 
                         {$multiply:[{$subtract:["$lines.creditAmount","$lines.debitAmount"]} ,{$divide:["$lines.taxPercentage",100]}]}
                     ] }
                  }
           }
    },
    {
       $project:{
              _id:0,
              taxEntity: "$_id.taxEntity",
              invoiceType: "$_id.invoiceType",
              invoiceStatus: "$_id.invoiceStatus",
              productCode: "$_id.productCode",
              productDesc: "$_id.productDesc",
              numberOfLines:1,
              quantity:1,
              creditAmount:1,
              debitAmount:1,
              taxPayableRec:1,
              netTotal: {$subtract:["$creditAmount","$debitAmount"]},
              grossTotal: {$add:[{$subtract:["$creditAmount","$debitAmount"]},"$taxPayableRec"]}
           }  
    }

// uncomment to show the number of groups generated    
//     ,{
//     $group:{
//         _id:null,
//         count:{$sum:1}
//         }}

 ],{ allowDiskUse: true })

你已经越过这个错误了吗?谢谢

标签: mongodbaggregation

解决方案


推荐阅读