MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment stocker un tableau trié dans MongoDB ?

La version 2.4 de MongoDB fournit une autre option ici, qui consiste à conserver le champ de tableau dans un ordre trié lorsque vous le mettez à jour en utilisant le $sort modificateur.

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

Cela se traduira par les éléments du myarray champ du document mis à jour à stocker trié par timestamp croissant .

Si vous souhaitez simplement trier les éléments existants en place sans en ajouter de nouveaux, utilisez $each: [] :

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