PHP MongoDB сортирует результаты по алфавиту - PullRequest
1 голос
/ 04 октября 2011

Я уверен, что это действительно просто сделать, но как вы сортируете по алфавиту (желательно естественному виду) в монго с PHP? Вот что у меня сейчас:

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

И массив не возвращается в алфавитном порядке. Я что-то упустил?!

Ответы [ 2 ]

1 голос
/ 19 мая 2012

на самом деле это должно быть отсортировано в порядке A-Za-z, который связан с тем, как MongoDB работает с индексами.Вы можете взглянуть на тикет: https://jira.mongodb.org/browse/SERVER-90, который касается проблемы индексации.(см .: https://jira.mongodb.org/browse/SERVER-105 для конкретного билета, который просто ссылается на 90).

В примере кода Eliot предлагает сделать что-то вроде: {name: {real: "Eliot", sort: "eliot"}}, что в основном означает, что у вас есть второе поле, которое вы используете только для сортировки,которая содержит строку, которую вы хотите отсортировать по всем строчным буквам.

К сожалению, пока этот билет не исправлен, все решения - это просто обходные пути, но решение Eliots позволяет сортировать и извлекать только часть набора, а не извлекатьвесь набор и сортировка по php

0 голосов
/ 04 октября 2011

Я новичок в mongodb. Но из того, что я понимаю, это то, что в mongodb нужно выполнять меньше работы, а в приложении - больше. Вот почему mongodb может работать на высоких скоростях просто потому, что он не пытается быть приложением, подобным RDMS. Я думаю, что вам нужно будет проиндексировать коллекцию, хотя. просто используйте sureIndex (array ('title' => 1));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...