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

Hvordan tæller man forekomster i indlejret dokument i mongodb?

Der er et par måder at gribe dette an på, afhængigt af hvor meget data du skal behandle. Du kan bruge Aggregation Framework i MongoDB 2.2+, eller muligvis Kort/Reducer . Se Sammenligning af aggregeringskommandoer for en oversigt over funktionerne og begrænsningerne.

Her er et eksempel, der bruger Aggregation Framework:

db.fruit.aggregate(
    // Limit matching documents (can take advantage of index)
    { $match: {
        "_id" : ObjectId("52c1d909fc7fc68ddd999a73")
    }},

    // Unpack the question & answer arrays
    { $unwind: "$questions" },
    { $unwind: "$questions.answers" },

    // Group by the answer values
    { $group: {
        _id: "$questions.answers.answer",
        count: { $sum: 1 }
    }}
)

For dit eksempeldokument returnerer dette:

{
    "result" : [
        {
            "_id" : "banana",
            "count" : 1
        },
        {
            "_id" : "apple",
            "count" : 2
        }
    ],
    "ok" : 1
}


  1. 'IdentityContext' kunne ikke findes (mangler du et brugsdirektiv eller en monteringsreference)

  2. MongoDB fusionerer relaterede samlingselementer med andre samlingsresultater

  3. MongoDB - Importer data

  4. Sådan læser du et specifikt nøgle-værdi-par fra mongodb-samlingen