在以下查询中:

db.orders.aggregate([{ $match : { status: "A"}, { $limit: 5} }]);

如何获得$match之后但在应用$limit之前的文档计数?

我仍然想返回一个包含5个文档的array.但如果我使用$group,它似乎无法保存文档array.这可以在一次通话中完成,还是我必须打两次电话?

推荐答案

不幸的是,现在您必须进行两次调用,一次调用$limit运算符以获取结果,然后第二次调用计数.您可以使用聚合框架而不使用$limit运算符,并使用$group运算符来计算计数,或者正如wdberkeley指出的那样,您可以将标准传递给.count()获取计数,而不是在使用单个匹配阶段时使用聚合框架.

MongoDB - Aggregation Framework (Total Count).

Mongodb相关问答推荐

将消息流式传输到WebSocket

获取文档字段名并将其作为嵌套字段添加到聚合中

在MongoDB Aggregate for My BooksDB中将`$match`放在`$unwin`之前或之后的区别

为什么使用 Golang Mongo 驱动程序进行简单查询需要超过 2 秒?

Spring Data + MongoDB GridFS 可以通过 Repository 访问吗?

为什么一个 mongodb 副本集需要奇数个投票 node ?

如何使用python将csv数据推送到mongodb

Mongo查询子文档的多个字段

从 mongodb 中的副本配置重新开始

.NET 中的 Mongodb 单元测试

如何在任意深度查找 MongoDB 字段名称

NoSQL:MongoDB 或 BigTable 并不总是 Available意味着什么

在 mongoDB 中展平嵌套的 JSON struct

如何为 node.js 中的 MongoDB 索引指定 javascript 对象中的属性顺序?

Mongoose Select 要从 findOneAndUpdate 返回的字段

多次使用位置 `$` 运算符来更新嵌套数组

从 nodejs 到 mongodb 或 mongoose 的动态数据库连接

Spring Data MongoDB - 在哪里以编程方式为 Mongo 集合创建索引?

MongoDb - 利用多 CPU 服务器进行写入繁重的应用程序

在mongoose中创建和查找地理位置