我在用:
$db->collection->find()->sort(array('username' => '-1'));
我不断收到错误:
MongoCursorException: localhost:27017: 尝试在不允许使用索引类型的情况下使用索引类型“-1”(仅限 1 或 -1)。
我正在使用 MongoDB 2.4.1 和 PHP 驱动程序 1.3.x。
为什么是这样?
我在用:
$db->collection->find()->sort(array('username' => '-1'));
我不断收到错误:
MongoCursorException: localhost:27017: 尝试在不允许使用索引类型的情况下使用索引类型“-1”(仅限 1 或 -1)。
我正在使用 MongoDB 2.4.1 和 PHP 驱动程序 1.3.x。
为什么是这样?
你已经像这样调用排序了:
sort(array('username' => '-1'));
这是一个问题。在 MongoDB 2.4.1 中有一个小问题(错误?),这意味着它将不再接受字符串进行排序。
由于这不在驱动程序中,而是在服务器(MongoDB 本身)中,因此仅更改驱动程序版本将无法解决此问题。
这可能比 MongoDB 2.4.1 更早存在,但是,我只是在 MongoDB 2.0.0 和 2.1.x 上测试了它,因此我没有在相同的 PHP 驱动程序版本(1.2.x 和 1.3.x)上观察到这种行为。
要解决此问题,您必须指定一个带符号的数字,如下所示:
sort(array('username' => -1));
那可行。
在 mongodb-user 谷歌组发帖后,我发现这不是一个错误,但是,它仍然需要注意。