Verze 2.4 MongoDB zde poskytuje další možnost, a to udržovat pole pole v seřazeném pořadí při jeho aktualizaci pomocí $sort
modifikátor.
db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [{timestamp: 456, x: 1}, {timestamp: 123, x: 2}, ...],
$sort: {timestamp: 1}
}
}
});
Výsledkem budou prvky myarray
pole aktualizovaného dokumentu k uložení seřazené vzestupně timestamp
.
Pokud chcete pouze seřadit stávající prvky na místě bez přidávání nových, použijte $each: []
:
db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [],
$sort: {timestamp: 1}
}
}
});