2011-10-04 68 views
1

我相信这确实很简单,但是如何在mongo w/PHP中按字母排序(最好是自然排序)?这是我现在所拥有的:PHP MongoDB按字母排序结果

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

而且它不按字母顺序返回数组。我错过了什么?

回答

0

我是mongodb的新手。但从我所了解的情况来看,应该在MongoDB中做更少的工作,并且在应用中应该做更多的工作。这就是为什么mongodb可以达到高速,仅仅是因为它并不试图成为像RDMS一样的应用程序。我认为你需要将收藏索引。只需使用ensureIndex(array('title'=> 1));

+0

真棒 - 我m使用PHP来自然排序:) –

+0

很好听。 mongodb很喜欢和你一起工作,直到你定义了大量的数据。 – WojonsTech

1

实际上这应该按A-Za-z顺序排序,这与MongoDB如何与索引一起工作有关。 你可以看看票:https://jira.mongodb.org/browse/SERVER-90这是关于索引问题。 (请参阅:https://jira.mongodb.org/browse/SERVER-105关于特定票证,仅参考90)。

在代码示例艾略特建议做这样的事情: {名称:{实:“艾略特”,排序:“艾略特”}} 这基本上意味着你有你只对排序使用第二场,包含要按全部小写排序的字符串。

可悲的是,直到这票是固定的所有解决方案都只是workarrounds,但艾略特的解决方案可以让你排序,只检索集的一部分,而不是检索整个集和PHP排序