2.4-udgivelsen af MongoDB giver en anden mulighed her, som er at holde array-feltet i sorteret rækkefølge, mens du opdaterer det ved at bruge $sort
modifikator.
db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [{timestamp: 456, x: 1}, {timestamp: 123, x: 2}, ...],
$sort: {timestamp: 1}
}
}
});
Dette vil resultere i elementerne i myarray
felt i det opdaterede dokument, der skal gemmes, sorteret efter stigende timestamp
.
Hvis du bare vil sortere de eksisterende elementer på plads uden at tilføje nogen nye, skal du bruge $each: []
:
db.collection.update({_id: document_id}, {
$push: {
myarray: {
$each: [],
$sort: {timestamp: 1}
}
}
});