我一直在尝试检索一些数据,但是我一直遇到错误。这是我路线的摘录,请告诉我这是怎么回事。
我正在尝试从集合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)
})