我正在使用:
$db->collection->find()->sort(array('username' => '-1'));
我一直收到错误:
MongoCursorException:localhost:27017:尝试使用索引类型 '-1',其中不允许索引类型(仅限1或-1)。
我正在使用带有PHP驱动程序1.3.x的MongoDB 2.4.1。
为什么会这样?
答案 0 :(得分:3)
你这样称之为:
sort(array('username' => '-1'));
这是一个问题。在MongoDB 2.4.1中有一个轻微的怪癖(bug?),这意味着它不再接受字符串排序。
由于这不在驱动程序中,而是在服务器(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谷歌小组发帖后,我发现这不是一个错误,但是,它仍然需要注意。