Мы храним миллионы подписчиков в нашей настройке Mongo. Мне было поручено поставить переднюю часть записей, позволяя им искать. Мой поисковый запрос выглядит великолепно, но мне нужно иметь возможность сортировать их и делать их доступными для просмотра. Наш дизайн Mongo таков, что информация о канале вложена в массив. Я попытался отсортировать по «Channels.Address», потому что Email - это наш единственный канал, у которого есть адрес, но он не работает именно так. Он возвращает мои результаты в том же порядке, есть ли у меня восходящий или нисходящий.Есть ли способ отсортировать результаты Mongo по вложенным коллекциям?
Наша коллекция выглядит примерно так:
Subscriber:
{
"_id" : "",
"FirstName" : "Tester",
"LastName" : "Tester",
"Channels" : [{
"_t" : "EmailChannel",
"IsEnabled" : true,
"Type" : 1,
"Address" : "[email protected]"
}, {
"_t" : "SmsChannel",
"IsEnabled" : true,
"Type" : 2,
"Number" : "88888888"
}, {
"_t" : "FaxChannel",
"IsEnabled" : false,
"Type" : 4,
"Number" : null
}]
}
Моя текущая идея заключается в том, чтобы написать MapReduce, который возвращает то, что мне нужно, и искать на том, что вместо этого. Но это кажется пустой тратой пространства. Это сильно используемый стол, поэтому я не могу использовать eval. У кого-нибудь есть предложения?
Спасибо, Виниций! Я пойду о том, чтобы установить 2.2 на моем сервере и посмотреть, что произойдет. – bberliner