Ich kehrte zu sortieren haben folgende Schema:Mungo, wie Array von Objekten aus Abfrage
const userSchema = new Schema({
local: {
email: {type: String, unique: true, sparse: true, lowercase: true, trim: true, required: true},
password: {type: String, required: true},
},
username: {type: String, unique: true, lowercase: true, trim: true},
Items: [{
name: {type: String, trim: true},
createdAt: {type: Date, default: Date.now}
}]
});
Und ich verwende die folgende Abfrage alle Elemente abzurufen:
User.findById(req.user.id, 'Items -_id', (err, user) => { ... });
die zurück die folgenden:
{ Items:
[
{ name: 'test1',
_id: 58c70800a03d09a31bb7fc17,
createdAt: Mon Mar 13 2017 20:58:40 GMT+0000 (GMT) },
{ name: 'test2',
_id: 58c70826a03d09a31bb7fc18,
createdAt: Mon Mar 13 2017 20:59:18 GMT+0000 (GMT) }
]
}
Meine Frage ist: Wie kann ich e dit meine mongoose Abfrage, um Objekte innerhalb Items
Array in absteigender Reihenfolge basierend auf createdAt
Eigenschaft zurückzugeben? d.h. so dass test2
über test1
erscheint.
(einige zusätzliche Informationen, die Elemente Array im Durchschnitt wird der Länge 3-10 pro Benutzer und ich bin mit Nodejs als Backend, aus diesem Grund würde Sortierung der Array auf der App Seite erträglich sein wegen seiner kleine Größe oder zu ineffizient aufgrund Nodejs Single-Thread-Natur?), Danke.
diese Lösung die Benutzer-ID innerhalb Array Items für jedes Objekt zurückgibt, wie kann ich die Benutzer-ID vom Abfrageergebnis ausschließen? Und ist diese Abfrage effizienter als die Clientseite mit dem Knoten? Danke – linasmnew
Fügen Sie "_id": 0' in der Projektstufe hinzu, um _id auszuschließen. Aggregation ist ein Mongodb-Feature, es ist viel effizienter als es in Nodejs –
Vielen Dank, ist es auch möglich, es auf die gleiche Weise wie die Ausgabe in meiner ursprünglichen Frage zu formatieren? Es ist also nur ein Array, das Objekte enthält, weil es jetzt ein Array mit Objekten zurückgibt, die für jedes Objekt den Schlüssel "Elemente" enthalten. Danke – linasmnew