gpt4 book ai didi

php - MongoDB::listCollections 不工作

转载 作者:IT老高 更新时间:2023-10-28 13:29:33 25 4
gpt4 key购买 nike

在 Symfony Doctrine 中,我使用 MongoDB 作为数据库。我需要一个数据库中所有集合的列表。

我认为方法 ListCollections() 会给我这些名称和文档所暗示的。除了这个函数根本没有返回任何东西。

我从 Symfony PHP 调用这样的方法:

$this->get('doctrine_mongodb.odm.default_connection')->selectDatabase('database');

这给了我一个类 Doctrine\MongoDB\Database 的实例该类具有 listCollection() 函数,如下所述:

/**
* Wrapper method for MongoDB::listCollections().
*
* @see http://php.net/manual/en/mongodb.listcollections.php
* @return array
*/
public function listCollections()
{
return $this->mongoDB->listCollections();
}

正如文档所建议的那样,这个函数应该返回一个它所做的数组(但即使我的数据库中有集合,它也是空的)。

所以我更深入地查看了 mongo pecl 插件的 listCollections() 的文档,其中指出:

/**
* (PECL mongo >= 0.9.0)<br/>
* Get a list of collections in this database
* @link http://www.php.net/manual/en/mongodb.listcollections.php
* @param bool $includeSystemCollections [optional] <p>Include system collections.</p>
* @return array Returns a list of MongoCollections.
*/
public function listCollections($includeSystemCollections = false) {}

如何在 Symfony 3.0.6 中获取一个数据库中的所有集合名称?

一些关键细节:

  • Mongo 版本:1.5.5
  • Symfony 版本:3.0.6
  • MongoDB shell 版本:3.2.4

最佳答案

Mongo 1.5.5 有一个错误会导致此错误。

https://github.com/mongodb/mongo-php-driver-legacy/blob/1.5.5/db.c

尝试将 mongo 扩展更新到 1.6.14 并重试!

关于php - MongoDB::listCollections 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37438387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com