gpt4 book ai didi

angularjs - 如何在聚合 MongoDB 中设置 'cursor' 选项

转载 作者:太空宇宙 更新时间:2023-11-03 21:49:04 25 4
gpt4 key购买 nike

我的 API 服务器上有一个聚合命令。它运行良好,直到我将 MongoDB 更新到 3.6.3。现在我收到这种错误:“需要‘光标’选项,除了与解释参数的聚合之外”。这是我的例子:

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);
}
);

最佳答案

ArchiveReq.aggregate([
$project: {
projectId: 1,
projectName: 1,
shortDescription: 1,
numOfStudents: 1,
creationDate: 1,
matches: {$ne: ['$creationDate', '$updateDate']}
}
],
{
cursor: { batchSize: 0 }
}
).exec(function(error, cursor) {

// use cursor

});

版本 3.4 中的更改:MongoDB 3.6 删除了不带游标选项的聚合命令的使用,除非该命令包含解释选项。除非包含解释选项,否则必须指定光标选项。示例:

要指示具有默认批量大小的游标,请指定游标:{}。

要指示具有非默认批量大小的游标,请使用游标:{batchSize:}。

以下示例对文章集合执行聚合操作,以计算出现在集合中的标签数组中每个不同元素的计数。有关更多详细信息,请参阅 https://docs.mongodb.com/manual/reference/command/aggregate/

db.runCommand( {
aggregate: "articles",
pipeline: [
{ $project: { tags: 1 } },
{ $unwind: "$tags" },
{ $group: { _id: "$tags", count: { $sum : 1 } } }
],
cursor: { }
} )

关于angularjs - 如何在聚合 MongoDB 中设置 'cursor' 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49172981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com