无法使用mongodb-1.1.x php驱动程序进行查询

时间:2016-01-17 22:59:27

标签: php mongodb

我刚刚将mongodb更新到版本3.2并将我的php驱动程序更新为latest。这是docs

他们用这个新驱动程序几乎改变了一切,我认为没有足够的文档。我无法像以前那样找到如何使用php计算,限制和排序数据。

我在mongodb网站上找到sort method,但在php文档和源代码中没有任何内容。

有没有人处理过这个新驱动程序?如何使用php对查询结果进行排序和限制?

1 个答案:

答案 0 :(得分:0)

要使用新的mongo php驱动程序,不像只需要安装mongo.so或mongo.dll的旧版本,你需要通过composer获取mongodb / mongodb包:

composer.phar require "mongodb/mongodb=^1.0.0@beta"

然后您可以将此示例用于初始尝试:

<?php
    require 'vendor/autoload.php'; // include Composer goodies

    $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
    $collection = new MongoDB\Collection($manager, "db_name.collection_name");

    $result = $collection->find( [ 'id' => '1', 'name' => 'John' ] );

    foreach ($result as $entry)
    {
        echo $entry->id, ': ', $entry->name, "\n";
    }
?>

可以在https://github.com/mongodb/mongo-php-library/blob/master/examples/bulkwrite.phphttps://github.com/mongodb/mongo-php-library/blob/master/examples/write.php

中找到更多示例

可以在https://github.com/mongodb/mongo-php-library/blob/master/src/Collection.php

中找到计数方法

sort和limit是要添加到find()方法的选项:

$options = [
    'sort' => ['id' => 1],
    'limit' => 5
];
 $result = $collection->find( [ 'id' => '1', 'name' => 'John' ], $options );