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}
}
}
});