我有一个包含100万个文档的集合...我已经通过了allowDiskUse
的选项,现在它抛出错误TypeError: callback.apply is not a function
我已经搜索过了,但是可以找到解决方案...请帮助
const pictures = await Picture.aggregate([
{ $sort: { createdAt: -1 }},
{ $group: {
_id: { $dateToString: { format: "%Y-%m-%d", date: "$createdAt" } },
pictures: {
$push: {
_id: '$_id',
image: '$image',
time: { $dateToString: { format: "%H:%M:%S", date: "$createdAt" } }
}
}
}},
{ $limit: 50 },
{ $project: {
_id: false,
createdAt: '$_id',
pictures: '$pictures'
}}
], { allowDiskUse: true })
Mongodb版本-3.6
猫鼬版本-5.0
最佳答案
因为这是“猫鼬”。 aggregate()
方法in the Mongoose API上没有“选项”块。那是源链接,然后是the documentation。注意返回的<Aggregate>
类型。
如文档所示,该链接到allowDiskUse(true)
:
await Model.aggregate(..).allowDiskUse(true).exec()
实际上,您绝不需要在大多数聚合中使用该选项。收到警告消息通常表示您实际上缺少索引,或者实际上是任何明智的尝试来
$match
并过滤结果。关于node.js - TypeError:callback.apply在allowDiskUse之后不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50756344/