MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come memorizzare l'array ordinato su MongoDB?

La versione 2.4 di MongoDB fornisce un'altra opzione qui, che consiste nel mantenere il campo dell'array in ordine mentre lo aggiorni utilizzando $sort modificatore.

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

Ciò risulterà negli elementi di myarray campo del documento aggiornato da memorizzare ordinato per timestamp crescente .

Se vuoi semplicemente ordinare gli elementi esistenti senza aggiungerne di nuovi, usa $each: [] :

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