我不得不重写一些使用 mongodb 和 mongoose 的功能。我有一个从 mongodb 中找不到 findAndCount() 的函数,但是我无法找到 mongoose 的 id。现在我正在使用这段代码:
const [totalItems, items] = await Promise.all([
model.estimatedDocumentCount(),
model
.find({
...where,
...(dateQuery && { createdAt: { ...dateQuery } }),
})
.skip(_limit * (_page - 1))
.limit(_limit)
.sort(sort)
.populate(populate)
.select(select),
]);
但我发现estimatedDocumentCount()是针对整个集合的,例如集合有4个保存的文档,但是随后出现了某种类型的where过滤器并从.find( ) 是一个单个元素,estimatedDocumentCount 仍然返回 4,我无法计算正确的分页。要使用 .length 这不是一个选项,因为有 skip 和 limit
我的问题是我能以某种方式获得与过滤器匹配的所有文档的计数吗?提前致谢!