2016-06-03 9 views
0

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

Antwort

0

.Sort ({_ id: -1})

Verwendet automatisch erstellte _id, da es ein eingebettetes Datum hat. Arbeitete danach.

0

Die Abfrage auf eine nicht vorhandene Eigenschaft ist das Sortieren date:

.sort({ date : -1 }) 

Stattdessen versuchen Sie dies:

.sort({ 'message.timestamp' : -1 }) 
+0

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

+0

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

+0

Aktualisiert für eine bessere Sicht und Ihre Hilfe zu schätzen. – LinkM