我想在网站上实现分页,我希望我的mongodb查询返回首先在2个集合之间执行查找,对文档进行排序,计算文档总数,然后在$skip
和[ C0]阶段的聚合。这是我的查询:
$limit
我不想进行2个查询,它们本质上是相同的,只是第一个查询返回文档计数,而其他查询返回文档本身。
所以结果将是这样的:
const res = await Product.aggregate([
{
$lookup: {
from: 'Brand',
localField: 'a',
foreignField: 'b',
as: 'brand'
}
},
{
$sort: {
c: 1,
'brand.d': -1
}
},
{
$skip: offset
},
{
$limit: productsPerPage
}
])
例如,将有10个{
documents: [...],
totalMatchedDocumentsCount: x
}
,但documents
可能是totalMatchedDocumentsCount
。
我不知道如何执行此操作,我看不到500
方法返回游标。是否可以在一个查询中实现我想要的?