好的我正在使用mongo db并且在我的页面上有一个重复区域:
try {
$connection = new Mongo();
$database = $connection->selectDB($selectDB);
$collection = $database->selectCollection($selectCollection);
} catch(MongoConnectionException $e) {
die("Failed to connect to database ".$e->getMessage());
}
$cursor = $collection->find();
while ($cursor->hasNext()): $document = $cursor->getNext();
echo $document['fieldName']."<br/>";
echo $document['fieldType']."<br/>";
echo $document['fieldLength']."<br/>";
echo $document['user_id']."<br/>";
echo $document['order']."<br/>";
echo "<hr/>";
endwhile;
这工作正常,但我现在要做的是按user_id排序。我试过这个:
try {
$connection = new Mongo();
$database = $connection->selectDB($selectDB);
$collection = $database->selectCollection($selectCollection);
} catch(MongoConnectionException $e) {
die("Failed to connect to database ".$e->getMessage());
}
$cursor = $collection->find().sort({user_id: -1});
while ($cursor->hasNext()): $document = $cursor->getNext();
echo $document['fieldName']."<br/>";
echo $document['fieldType']."<br/>";
echo $document['fieldLength']."<br/>";
echo $document['user_id']."<br/>";
echo $document['order']."<br/>";
echo "<hr/>";
endwhile;
我更改的行是:$ cursor = $ collection-&gt; find()。sort({user_id:-1});
我在id o时遇到php错误。有人可以告诉我正确的syntex来让这个数组排序。
我也尝试过:
$cursor = $collection->find()->sort({user_id: -1});
and
$cursor = $collection->find();
$cursor = $cursor.sort({user_id: -1});
任何帮助将不胜感激。感谢。
发现回答 *
$cursor = $collection->find();
$cursor->sort(array('user_id' => 1));
答案 0 :(得分:5)
我认为这是一个PHP语法错误:
$collection->find().sort({user_id: -1})
是无效的PHP。在PHP中,点运算符(“.
”)用于连接字符串,而不是访问对象成员。为此,请使用箭头运算符(“->
”)。此外,“{user_id: -1}
”不是PHP中关联数组的正确语法。为此,请使用“array("user_id" => -1)
”。
这给了我们:
$collection->find()->sort(array("user_id" => -1))
我认为应该有效。