据我所知,使用Mongoose可以对已填充的文档进行排序(source)。
我正在寻找一种按一个或多个已填充字段排序查询的方法。
考虑这两个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
我实际上是在查询后手动进行这些排序的,希望能够进行优化。