Ich habe diese mongoose-Abfrage ausprobiert und habe keine Ahnung, warum diese Sortierung nicht funktioniert (Syntax auf Stackoverflow gefunden also keine Ahnung was ich wieder falsch gemacht habe). Versucht, exec mit find zu ersetzen, funktioniert auch nicht.Mongoose-Suchabfrage: JSON-Array nach Datum sortieren
model.find({'id':req.params.id}).sort({date:-1}).limit(10).exec(function(err, jsonarray){...};
Mein Schema und jsondata ist wie folgt aus:
var messageSchema = new Schema({
id: Number,
name: Schema.Types.Mixed,
type: Schema.Types.Mixed,
message:
{
messagetype: String,
timestamp: Number,
messagestatus: String
}
}, {collection: 'test'});
sonst wird es von message.timestamp sortieren könnte, aber ich habe keine Ahnung, wie .. Vielen Dank im Voraus.
Selbst versuchte es so .. Ich stecke fest.
json.sort(function(a, b) {
return parseFloat(a.message.timestamp) - parseFloat(b.message.timestamp);
});
Update: Daten sieht so aus:
[ { id: 215456740,
name: 'Max',
type: 'freezer',
_id: 57513933c25d06630a3ef887,
__v: 0,
message:
{ messagetype: 'Standard message',
timestamp: 1464940851375,
messagestatus: 'red'
}
},
{ id: 215456740,
name: 'Tobi',
type: 'center',
_id: 5751393bc25d06630a3ef888,
__v: 0,
message:
{ messagetype: 'Standard message',
timestamp: 1464940859265,
messagestatus: 'white'
}
}]
Ja, es ist gewollt, mehrere Nachrichten für eine Id. Dies ist die Ausgabe
Versucht, funktioniert leider nicht. Es fühlt sich an, als ob es den Parameter bekommt, aber nicht sortiert oder das neue Array nicht neu lädt. – LinkM
Nur um sicher zu sein: Es ist _intentional_, dass Sie mehrere Dokumente mit derselben 'id'-Eigenschaft haben, richtig? Können Sie eine Liste von Ergebnissen hinzufügen (redigiert oder kompaktiert, nur die 'message' Eigenschaft wäre genug) von der Abfrage zu Ihrer Frage? – robertklep
Aktualisiert für eine bessere Sicht und Ihre Hilfe zu schätzen. – LinkM