PHP MongoDB按字母顺序排序结果

时间:2011-10-04 06:34:18

标签: php mongodb

我确定这很简单,但你如何按照字母顺序(最好是自然排序)在mongo w / PHP中进行排序?这就是我现在所拥有的:

$data->sort(array('title' => 1));

并没有按字母顺序返回数组。我错过了什么吗?!

2 个答案:

答案 0 :(得分:1)

实际上这应该按照A-Za-z顺序排序,这与MongoDB如何处理索引有关。 你可以查看一下票证:https://jira.mongodb.org/browse/SERVER-90这是关于索引问题的。 (请参阅:https://jira.mongodb.org/browse/SERVER-105了解特定故障单,其中仅引用了90)。

在代码示例中,艾略特建议做以下事情: {name:{real:“Eliot”,sort:“eliot”}} 这基本上意味着你有第二个字段,你只用于排序,它包含你想要按小写排序的字符串。

可悲的是,在修复此故障单之前,所有解决方案都只是解决问题,但是Eliots解决方案允许您排序并仅检索集合的一部分,而不是检索整个集合并通过php进行排序

答案 1 :(得分:0)

我是mongodb的新手。但据我所知,mongodb应该做的工作少,应该在应用中做更多的工作。这就是为什么mongodb可以达到高速的原因,仅仅是因为它并不是一个像RDMS一样的应用程序。我想你需要索引收集索引。只需使用ensureIndex(array('title'=> 1));