2013-01-14 14 views
1

Это схема:Классифицировать мангуст схемы массивов по дате

var userschema = new mongoose.Schema({ 

    user: String, 
    messages: [{ 

       title: String, 
       author: String, 
       message: String, 
       date: { type: Date, default: Date.now }, 

      }], 

}); 

Я пытаюсь показать сообщение всех пользователей на одной странице упорядочены по дате. Я знаю, как, например, показать все сообщения конкретного пользователя, но если у меня есть несколько пользователей, я не знаю, как классифицировать их сообщение по дате, используя mongoose. Есть какой-либо способ сделать это...?

Спасибо заранее!

ответ

1

Используйте структуру агрегации и $unwind в messages массив, так что вы можете $sort их все date:

Users.aggregate([ 
    {$unwind: '$messages'}, 
    {$sort: {'messages.date': 1}} 
], function (err, result) { 
    console.log(result); 
} 
+0

Если я хочу сделать это, но выбор некоторых конкретных пользователей, я должен изменить некоторые вещи? – MrMangado

+0

@MrMangado Добавить оператор '' $ match' '(http://docs.mongodb.org/manual/reference/aggregation/#_S_match) к конвейеру для фильтрации документов. – JohnnyHK

+0

Можно использовать оператор '$ match' с массивом? – MrMangado

Смежные вопросы