Mongoose, запрос сортировки по заполненному полю

Насколько мне известно, с помощью Mongoose(можно сортировать заполненные документы. источник).

Я ищу способ сортировки запроса по одному или нескольким заполненным полям.

Рассмотрим эти две схемы Mongoose:

var Wizard = new Schema({
    name  : { type: String }
, spells  : { [{ type: Schema.ObjectId, ref: 'Spell' }] }
});

var Spell = new Schema({
    name    : { type: String }
,   damages : { type: Number }
});

Пример JSON:

[{
    name: 'Gandalf',
    spells: [{
            name: 'Fireball',
            damages: 20
        }]
}, {
    name: 'Saruman',
    spells: [{
            name: 'Frozenball',
            damages: 10
        }]
}, {
    name: 'Radagast',
    spells: [{
            name: 'Lightball',
            damages: 15
        }]
}]

Я хотел бы отсортировать этих волшебников по их урону от заклинаний, используя что-то вроде:

WizardModel
 .find({})
 .populate('spells', myfields, myconditions, { sort: [['damages', 'asc']] })
// Should return in the right order: Saruman, Radagast, Gandalf

На самом деле я делаю эти сортировки вручную после запроса и хотел бы оптимизировать это.

13
задан Adrien Schuler 17 July 2012 в 08:21
поделиться