我刚刚将mongodb更新到3.2版,并将php驱动程序更新到latest。这是docs。
他们用这个新的驱动程序几乎改变了一切,我认为没有足够的文档。我找不到像以前那样用php计算、限制和排序数据的方法。
我在mongodb网站上找到了sort method,但在php文档和源代码中没有找到。
有人和这个新司机打过交道吗?如何使用php对查询结果进行排序和限制?
最佳答案
要使用新的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.php和https://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 );