sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur sorterar man array inuti samlingsposten i MongoDB?

Du måste manipulera den inbäddade arrayen i din applikationskod eller använda det nya Aggregation Framework i MongoDB 2.2.

Exempel på aggregering i mongo skal:

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
    }}
)

Exempelutdata:

{
    "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
}


  1. Få MongoDB på Linux att lyssna på fjärranslutningar

  2. Kan jag använda '$set' på inbäddat dokument när jag använder variabel som arkiverat namn i MongoDB?

  3. MongoDb:hitta djupt kapslade objekt med $lookup

  4. Redis-strängar vs Redis-haschar för att representera JSON:effektivitet?