Возможно ли в MongoDB выполнять условные запросы к встроенному документу?

Например, предположим, что у меня есть следующая схема

var Comments = new Schema({
    title     : String
  , body      : String
  , date      : Date
});

var BlogPost = new Schema({
    author    : ObjectId
  , title     : String
  , body      : String
  , buf       : Buffer
  , date      : Date
  , comments  : [Comments]
  , meta      : {
      votes : Number
    , favs  : Number
  }
});

Я знаю, как запрашивать BlogPost по атрибутам комментария. Как я могу выполнить такой запрос, чтобы получить последние пять комментариев? то есть отсортировать в обратном порядке все комментарии по ObjectId, а затем получить первые пять результатов. Нужно ли мне для этого выделить отдельную коллекцию комментариев?


person deltanovember    schedule 28.05.2012    source источник


Ответы (1)


Надеюсь, когда-нибудь у нас появятся виртуальные коллекции. Но до тех пор вы должны перемещать комментарии в отдельную коллекцию, чтобы иметь возможность выполнять к ним полный массив запросов.

Кроме того, вы можете использовать Aggregation Framework.

person Sergio Tulentsev    schedule 28.05.2012
comment
Обязательно проголосуйте за виртуальные коллекции, чтобы помочь поднять свой профиль и не забудьте посмотреть билет. - person Ross; 29.05.2012