如何通过MongoDB Data API(POST请求)查询带过滤条件的文档数量?
可以通过MongoDB Data API查询带过滤条件的文档数量
你完全可以用两种方式实现这个需求,官方文档只是没单独给出计数示例而已:
方式1:使用聚合管道
通过aggregate操作,先通过$match过滤目标文档,再用$count阶段统计数量。POST请求体示例如下:
{ "collection": "your-collection-name", "database": "your-database-name", "dataSource": "your-cluster-name", "pipeline": [ { "$match": { "your-field": "your-filter-value" } }, // 替换成你的过滤条件 { "$count": "totalDocuments" } ] }
请求成功后,响应会返回类似[{ "totalDocuments": 42 }]的结果,其中totalDocuments的值就是符合条件的文档总数。
方式2:使用find操作并指定计数参数
直接调用find接口,设置limit: 0(不返回具体文档),同时开启count: true参数来获取总数。POST请求体示例:
{ "collection": "your-collection-name", "database": "your-database-name", "dataSource": "your-cluster-name", "filter": { "your-field": "your-filter-value" }, // 替换成你的过滤条件 "limit": 0, "count": true }
这种方式的响应会包含count字段,比如{ "documents": [], "count": 42 },count的值就是你要的数量。
这两种方式都是MongoDB Data API原生支持的,逻辑和MongoDB数据库本身的计数、聚合操作完全一致,只是官方文档没单独做示例说明而已。
内容的提问来源于stack exchange,提问作者Daniil Gaponov
相关产品推荐
相关产品推荐

