Wersja 2.4 MongoDB udostępnia tutaj inną opcję, która polega na utrzymywaniu pola tablicy w posortowanej kolejności podczas aktualizacji za pomocą $sort
modyfikator.
db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [{timestamp: 456, x: 1}, {timestamp: 123, x: 2}, ...],
$sort: {timestamp: 1}
}
}
});
Spowoduje to powstanie elementów myarray
pole zaktualizowanego dokumentu do przechowywania posortowane rosnąco timestamp
.
Jeśli chcesz po prostu posortować istniejące elementy na miejscu bez dodawania nowych, użyj $each: []
:
db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [],
$sort: {timestamp: 1}
}
}
});