0

为了显示收集计数,我尝试了以下示例。这是我所做的:

<?php
 $connection = new MongoDB\Driver\Manager(Mongo URI);
//echo phpinfo();
$collection = new MongoDB\Collection($connection, "new", "items");
$initialCollectionCount = $collection->count();
echo $initialCollectionCount;
?>

我收到以下错误:

Fatal error: Uncaught Error: Class 'MongoDB\Collection' not found in C:\xampp\htdocs\test\test.php:4 Stack trace: #0 {main} thrown in C:\xampp\htdocs\test\test.php on line 4

到目前为止我所做的:
1) 从 Pecl 网站下载最新的 MongoDB 驱动程序,用于 PHP 7.1。
2)将DLL文件添加到ext文件夹并编辑php.ini文件。
3) 为 php 和 mongo 连接编写代码。

请建议我需要做什么才能使我的代码运行。请注意,我已将 System 变量添加为 PHP 文件夹。到目前为止,我没有什么是我没有做过的。

请建议我正确的轨道,以便我的代码得到实施。

4

1 回答 1

1

MongoDB\Driver\Query您可以尝试使用扩展的类检索数据。

// Manager Class / Connection
$connection = new MongoDB\Driver\Manager(Mongo URI);

// Query Class like this. Add your conditions here if there may be any
$query = new MongoDB\Driver\Query(array('id' => 1));

// Output of the executeQuery will be object of MongoDB\Driver\Cursor class
$cursor = $connection->executeQuery('new.items', $query);

// Convert cursor to Array and print result
print_r($cursor->toArray());

然后你可以计算输出数组的元素。

当您使用 的最新MongoDB扩展时,此代码运行良好PHPMongoDB\Driver\Manager是扩展的主要入口点。

回答您的评论:我没有看到列出所有集合的类。或者,尝试使用,Mongo client直到我们获得更多支持MongoDB\Driver\Manager

这是列出数据库中所有集合的示例代码:

<?php

$m = new MongoClient();
$db = $m->selectDB("new");
$collections = $db->listCollections();

foreach ($collections as $collection) {
    echo "amount of documents in $collection: ";
    echo $collection->count(), "\n";
}

?>

该类MongoClient是传统 PECL 包mongo的一部分,但不再属于最新的 mogodb 包。

此软件包已被取代,但仍会针对错误和安全修复进行维护。

于 2017-05-02T06:09:51.167 回答