Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MongoDB选择排序问题_Php_Android_Mysql_Sql_Mongodb - Fatal编程技术网

Php MongoDB选择排序问题

Php MongoDB选择排序问题,php,android,mysql,sql,mongodb,Php,Android,Mysql,Sql,Mongodb,我的问题是我想做一个数据库查找(选择)与排序划分^^ 这在我的代码中看起来像: $return = $db->selectCollection( $category )->find(array("time" > $time_lastweek))->sort(array("rating/count_raitings" => 1,"count_raitings" => 1))->limit(10); 我以前在SQL(PDO)中这样做过: $last_wee

我的问题是我想做一个数据库查找(选择)与排序划分^^

这在我的代码中看起来像:

$return = $db->selectCollection( $category )->find(array("time" > $time_lastweek))->sort(array("rating/count_raitings" => 1,"count_raitings" => 1))->limit(10);
我以前在SQL(PDO)中这样做过:

$last_week = $dbh->prepare('SELECT * FROM '.$category.' WHERE time > :zeit ORDER BY rating/count_raitings ASC, count_raitings ASC LIMIT 10');
        $last_week->execute(array(':zeit' => $time_lastweek));
        $return = $last_week->fetchAll(PDO::FETCH_CLASS);

谁能帮我一下吗。MongoDB对我来说不起作用。

以下是如何在shell中使用它(应该可以直接转换为PHP):

db.category.aggregate([
//将文档筛选到time>time\u lastweek所在的位置
{$match:{time:{$gt:time_lastweek}},
//确定每个文档中要包含的内容,为部门添加一个计算字段
{$项目:{
时间:1,,
评级:1,
服装计数:1,
div_val:{$divide:['$rating','$count_raitings']}
} },
//对结果进行排序
{$sort:{div_val:1,count_raitings:1}},
//限制在前10名
{$限额:10}
])

您不能使用
查找
查询来实现这一点。你必须使用聚合框架才能做到这一点。我在这个框架中如何做到这一点?我发布了一个答案,说明如何使用agg framework.hhmm做到这一点,那么为什么我的mongodb会说:致命错误:调用未定义的方法MongoCollection::aggregate(),您的服务器是哪个版本的mongodb?聚合框架是在v2.2中引入的。如果我真的要更新它(debian),它会说所有都是最新的。状态显示:版本“2.2.1”处理“mongod”这是一个shell命令,要在RockMongo中执行此操作,请参阅。