MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie speichert man ein sortiertes Array zurück in MongoDB?

Die Version 2.4 von MongoDB bietet hier eine weitere Option, nämlich das Array-Feld in sortierter Reihenfolge zu halten, während Sie es aktualisieren, indem Sie $sort Modifikator.

db.collection.update({_id: document_id}, {
    $push: {
        myarray: {
            $each: [{timestamp: 456, x: 1}, {timestamp: 123, x: 2}, ...],
            $sort: {timestamp: 1}
        }
    }
});

Dies führt zu den Elementen von myarray Feld des aktualisierten Dokuments, das gespeichert werden soll, sortiert nach aufsteigendem timestamp .

Wenn Sie nur die vorhandenen Elemente an Ort und Stelle sortieren möchten, ohne neue hinzuzufügen, verwenden Sie $each: [] :

db.collection.update({_id: document_id}, {
    $push: {
        myarray: {
            $each: [],
            $sort: {timestamp: 1}
        }
    }
});