【问题标题】:PHP Mongodb Count ResultPHP Mongodb 计数结果
【发布时间】:2019-05-13 19:42:51
【问题描述】:

我正在 php 中对我的 MongoDB 执行一个简单的请求。它看起来像这样:

$result = $this->myMongoClient->myCollection->find([
    'param_1' => $param_1,
    'param_2' => $param_2,
]);

这将返回一个MongoDB\Driver\Cursor 对象。我需要从数据库返回条目的计数。

我用谷歌搜索了一段时间,发现了这个。但是这个函数在 MongoDB 返回的对象中不存在 (Call to undefined method MongoDB\Driver\Cursor::count())

$result->count()

统计结果数的常用方法是什么?

【问题讨论】:

    标签: php mongodb php-mongodb


    【解决方案1】:

    我找到了解决方案,但不知道是否值得推荐。

    count($result->toArray());
    

    【讨论】:

    • 这将从数据库中提取结果集的所有数据,而不是仅对数据库中的数据执行计数。
    • 有其他选择吗?
    • 这里有一些替代方案:stackoverflow.com/questions/36726069/…
    【解决方案2】:

    我不知道你是否使用MongoDB PHP Library,但如果你是,你可以使用以下

    $result = $this->myMongoClient->myCollection->countDocuments($where);
    

    https://docs.mongodb.com/php-library/master/reference/method/MongoDBCollection-countDocuments/index.html

    【讨论】:

    • 是的,我正在使用官方的 php 库。使用此解决方案,我必须向数据库发送两个请求,一个用于获取文档,一个用于计数。我说的对吗?
    • 是的,如果您需要文档计数和文档本身,此方法将要求您对数据库进行 2 次单独调用。
    猜你喜欢
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    相关资源
    最近更新 更多