我正在开发一个php-mongodb项目。我已经使用 composer 安装了php-mongodb驱动程序。连接正常。
使用参考链接获取任何指导: http://mongodb.github.io/mongo-php-library/tutorial/crud/#crud-operations 和http://php.net/manual/en/mongocollection.find.php
除了那些,我找不到很多可靠的php-7理论。 如何使用php-7触发查询以从大于指定数量的数据库中获取结果?
我尝试的代码是:
$rs=$collection->find(['$gte'=>['avg'=>50]]);
这不起作用。它产生的错误是:
Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionException: unknown top level operator: $gte in /var/www/example.com/public_html/vendor/mongodb/mongodb/src/Operation/Find.php:180 Stack trace: #0 /var/www/example.com/public_html/vendor/mongodb/mongodb/src/Operation/Find.php(180): MongoDB\Driver\Server->executeQuery('training.tbl', Object(MongoDB\Driver\Query), Object(MongoDB\Driver\ReadPreference))#1 /var/www/example.com/public_html/vendor/mongodb/mongodb/src/Collection.php(437): MongoDB\Operation\Find->execute(Object(MongoDB\Driver\Server)) #2 /var/www/example.com/public_html/list.php(5): MongoDB\Collection->find(Array) #3 {main} thrown in /var/www/example.com/public_html/vendor/mongodb/mongodb/src/Operation/Find.php on line 180
答案 0 :(得分:2)
从以下here
中找到了这个答案//搜索5< x< 20
$rangeQuery = array('x' => array( '$gt' => 5, '$lt' => 20 ));
对于上面的例子,答案是:
$rangeQuery = ['avg' => ['$gt' => '50' ]];
$rs=$collection->find($rangeQuery);