在以下查询中:
db.orders.aggregate([{ $match : { status: "A"}, { $limit: 5} }]);
如何获得$match
之后但在应用$limit
之前的文档计数?
我仍然想返回一个包含5个文档的array.但如果我使用$group
,它似乎无法保存文档array.这可以在一次通话中完成,还是我必须打两次电话?
在以下查询中:
db.orders.aggregate([{ $match : { status: "A"}, { $limit: 5} }]);
如何获得$match
之后但在应用$limit
之前的文档计数?
我仍然想返回一个包含5个文档的array.但如果我使用$group
,它似乎无法保存文档array.这可以在一次通话中完成,还是我必须打两次电话?
不幸的是,现在您必须进行两次调用,一次调用$limit运算符以获取结果,然后第二次调用计数.您可以使用聚合框架而不使用$limit运算符,并使用$group运算符来计算计数,或者正如wdberkeley指出的那样,您可以将标准传递给.count()获取计数,而不是在使用单个匹配阶段时使用聚合框架.