我的API服务器上有一个Aggregate命令 . 它运行良好,直到我将MongoDB更新为3.6.3 . 现在我遇到了这样的错误:“'cursor'选项是必需的,除了带有explain参数的聚合” . 这是我的例子:
ArchiveReq.aggregate({
$project: {
projectId: 1,
projectName: 1,
shortDescription: 1,
numOfStudents: 1,
creationDate: 1,
matches: {$ne: ['$creationDate', '$updateDate']}
}
},
function (err, Requests) {
if (err)
return res.send(err)
res.json(Requests);
}
);
2 回答
版本3.4中更改:除非命令包含explain选项,否则MongoDB 3.6将删除不带游标选项的aggregate命令的使用 . 除非包含explain选项,否则必须指定cursor选项 . 例如:
要指示具有默认批处理大小的游标,请指定cursor:{} .
要指示具有非默认批处理大小的游标,请使用cursor:{batchSize:} .
以下示例对articles集合执行聚合操作,以计算集合中显示的tags数组中每个distinct元素的计数 . 有关详细信息,请参阅https://docs.mongodb.com/manual/reference/command/aggregate/
如果你想在mongo 3.6中使用聚合函数
你可以试试这个