繁体   English   中英

mongodb-聚合游标计数

[英]mongodb - aggregation cursor count

我正在阅读API文档(并做了一些实验),但似乎cursor.count()不再存在,所以我想知道是否有可能对您的总数进行计数。 这是因为我想知道总共有多少个文档,同时仍然限制和跳过结果。 我目前正在使用$ facet来简化此操作,但是不确定是否有更好的方法。

{
    $facet: 
    {
        "results": 
        [
            {
                "$skip": 
                    start
            },
            {
                "$limit": 
                    finish
            },
        ],
        "total": 
        [
            {
                "$count": 
                    "total" 
            },
        ]
    }
}

对于样式和性能,在此用例中使用$facet都很好。 但是,应该指出,尽管服务器端已进行了优化,但这实际上是一个查询中的两个查询。 无论$skip/$limit设置如何,获取经过过滤的材料的完整计数(如果没有初始$match则完全没有过滤器)需要时间。 如果$match产生相对少量的材料,则$count将很快。 所涉及的动态与常规SQL世界中的动态非常相似,例如,使用LIMIT / OFFSET运行查询并获得总行数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM