ich ein Mungo-Modell haben die Pfade aufweisen, die ausgefüllt werden müssen:Mongoose Sortierung Subdokument
var adsSchema = new Schema({
price: { type: Number, min: 0, required: true },
author: { type: ObjectId, ref: 'Users', required: true },
title: { type: String, required: true },
date: { type: Date, default: Date.now },
offers: [{
price: { type: Number, required: true },
date: { type: Date, default: Date.now },
offerBy: { type: ObjectId, ref: 'Users', required: true }
}],
category: { type: ObjectId },
images: [{
type: ObjectId,
ref: 'Images'
}],
videos: [String]
});
In einigen GET-Anfrage, ich muss bevölkerten zahlreiche Felder, wie ich sagte, bietet insbesondere mit einer Sortieranlage nach "Preis" nach aufsteigend.
Da die Dokumentation von Mongoose dort angezeigt wird (http://mongoosejs.com/docs/api.html#query_Query-populate), können Sie nach einem Unterpfad sortieren.
Mein Problem ist, dass es nicht der Fall ist.
Es ist mein Code, es zu tun ist:
Ads.findOne({ _id: adId })
.populate({ path: 'author', select: 'firstName lastName' })
.populate('images')
.populate({ path: 'offers', options: { sort: { 'price': -1 } })
.populate({ path: 'category', select: 'name' })
.exec(function (err, ad) {
if (err)
deferred.reject({ status: 500, message: 'Database error.' });
else if (!ad)
deferred.reject({ status: 500, message: 'The ad doesn\'t exist!.' });
else {
deferred.resolve(ad.toJSON());
}
})
ich so viel wie möglich gelesen haben Fragen/Antworten hier oder in der Mailing-Liste Mongoose geben:
Ich weiß, dass es nicht möglich ist, Dokumente Ergebnisse aus Filialdokument Ergebnis zu sortieren, OK. Aber ich möchte nur dieses Filialdokument sortieren und nur dieses. Einige Antworten hier scheint zu sagen, es ist möglich:
Ich habe 2 Fragen herum:
- Ist es möglich (wie der Mungo-Dokumentation geschrieben wird) ein Filialdokument während der Bevölkerung zu sortieren?
- Ist es mit der Tatsache verbunden, dass ich nicht nur eine ObjectId mit einem anderen Schema verknüpft habe?
Vielen Dank für Ihre Antwort;)