私の知る限り、データが入力されたドキュメントを Mongoose で並べ替えることができます ( source )。
入力された 1 つ以上のフィールドでクエリを並べ替える方法を探しています。
次の 2 つの 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
私は実際にクエリの後にこれらの並べ替えを手動で行っており、それを最適化したいと考えています。