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

Comment trier un tableau dans un enregistrement de collection dans MongoDB ?

Vous devrez manipuler le tableau intégré dans votre code d'application ou utiliser le nouveau cadre d'agrégation dans MongoDB 2.2.

Exemple d'agrégation dans le mongo coque :

db.students.aggregate(
    // Initial document match (uses index, if a suitable one is available)
    { $match: {
        _id : 1
    }},

    // Expand the scores array into a stream of documents
    { $unwind: '$scores' },

    // Filter to 'homework' scores 
    { $match: {
        'scores.type': 'homework'
    }},

    // Sort in descending order
    { $sort: {
        'scores.score': -1
    }}
)

Exemple de sortie :

{
    "result" : [
        {
            "_id" : 1,
            "name" : "Aurelia Menendez",
            "scores" : {
                "type" : "homework",
                "score" : 71.76133439165544
            }
        },
        {
            "_id" : 1,
            "name" : "Aurelia Menendez",
            "scores" : {
                "type" : "homework",
                "score" : 34.85718117893772
            }
        }
    ],
    "ok" : 1
}