我一直在尝试检索一些数据,但是我一直遇到错误。这是我路线的摘录,请告诉我这是怎么回事。
我正在尝试从集合2中获取jobID,该集合由集合1中的类别表示。希望这有意义。

我得到这个错误
UnhandledPromiseRejectionWarning:未处理的promise拒绝(拒绝ID:1):MongoError:需要“ cursor”选项,但带有explain参数的聚合除外

router.get('/jobs/:type', (req, res, next)=>{
   Job.aggregate([
       { $match : { category: req.params.type, "bidcounter": { $gt:-1, $lt:5} } },
       {
           $lookup:
             {
               from: "job_cat",
               localField: "category",
               foreignField: "jobID",
               as: "product_cat"
             }
        }, { $sort : { date : -1} }
   ], function(err, jobs){
       res.json(jobs);
   });
});

最佳答案

MongoDB在3.6中更改了聚合命令的工作方式。聚合现在需要一个游标。来自参考文献https://github.com/Mockgoose/Mockgoose/issues/32
让管道包含业务逻辑,那么下面可能会有所帮助

 Job.aggregate(pipeline)
  .cursor({})
    .exec((err, results)=>{
    console.log(err, results)
    })

07-24 09:38
查看更多