Как выбрать список внутренних свойств документов Mongo?

Предположим, что у нас есть коллекция пользователей и данных об их фотографиях:

{
 name: "Вася",
 photos: [
  {name: "Я в Нигерии", date: 2012-02-14},
  {name: "Я в Бутане", date: 2012-03-15},
 ]
},
{
 name: "Петя",
 photos: [
  {name: "Я неудачник", date: 2012-02-29},
 ]
}


Как можно сделать такой запрос, что бы оно вытаскивало все фотки пользователей, в порядке убывания даты фотографирования. То есть сначала будет «Я в Бутане», потом «Я неудачник» и в конце «Я в Нигерии».
  • Вопрос задан
  • 2739 просмотров
Пригласить эксперта
Ответы на вопрос 2
gaelpa
@gaelpa
Предположу, что без кода на клиенте, это можно сделать либо через Map/Reduce (а он вроде блокирующий), либо Aggregation Framework, который здесь уже упоминался, но будет только в 2.2.
Буду приятно удивлен, если можно проще.
Ответ написан
@1nd1go
Я с монгой знаком поверхностно, но может быть можно писать фотки в другую коллекцию со ссылкой на объекты из первой коллекции. Тогда вы можете просто положить фотки в виде
{
  date : "12-10-2012",
  description : "Я в Гондурасе",
  owner : "1234"
}


И наложить соответствующие индексы и там правильно сортировать.

Вообще, на сколько я помню: монга — это чтобы быстро пописать. Так что данные там лучше хранить в более простом виде, чтобы читать было потом их проще…
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы