我有一个包含 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()
method 在猫鼬 API 中 https://github.com/Automattic/mongoose/blob/master/lib/model.js#L3003。这是源链接,然后文档 http://mongoosejs.com/docs/api.html#aggregate_aggregate。注意返回的<Aggregate> http://mongoosejs.com/docs/api.html#Aggregate type.
这链至allowDiskUse(true) http://mongoosejs.com/docs/api.html#aggregate_Aggregate-allowDiskUse如文档中所示:
await Model.aggregate(..).allowDiskUse(true).exec()
您实际上应该永远不需要在大多数聚合中使用该选项。收到警告消息通常表明您实际上缺少索引,或者实际上是任何理智的尝试$match https://docs.mongodb.com/manual/reference/operator/aggregation/match/并过滤结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)