Задать вопрос
CartmanGui
@CartmanGui

Как отсортировать по полю array object?

Есть модель топика с сообщениями
var schemaMessage = new Schema({
    message: {
        type: String,
        required: true
    },
    from: {
        type: Schema.ObjectId,
        ref: 'User'
    },
    to: {
        type: Schema.ObjectId,
        ref: 'User'
    },
    date_created: {
        type: Date,
        default: Date.now
    }});

var schemaTopic  = new Schema({
    title: {
        type: String,
        required: true
    }
    ,messages: [schemaMessage]   
    ,date_created: {
        type: Date,
        default: Date.now
    }
});


Нужно вывести пользователю список топиков отсортированных по дате последнего сообщения в них для него
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Оценить Комментировать
Ответ пользователя lega К ответам на вопрос (2)
@lega
список топиков отсортированных по дате последнего сообщения в них для него

Для этого в топике нужно хранить дату последнего сообщения.

В теории такой запрос можно сделать на AgregationFramework, но он не будет использовать индексы, а значит будет полный проход по коллекции, а значит будет тормозить когда база вырастет.

Даже если бы вы использовали SQL, такая колонка была бы желательна, и необходима для худшего случая.
Ответ написан
Комментировать