sql >> Database >  >> NoSQL >> MongoDB

Hoe voorvallen tellen in genest document in mongodb?

Er zijn een paar manieren om dit te benaderen, afhankelijk van hoeveel gegevens u moet verwerken. Je zou het Aggregation Framework kunnen gebruiken in MongoDB 2.2+, of mogelijk Map/Reduce . Zie Vergelijking van aggregatieopdrachten voor een samenvatting van de functies en beperkingen.

Hier is een voorbeeld waarin het aggregatieraamwerk wordt gebruikt:

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

Voor uw voorbeelddocument geeft dit het volgende terug:

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


  1. Hernieuwde suggestie voor het selecteren van het gegevenstype

  2. Vraag MongoDB of het Master is uit een bashscript

  3. Sorteer de array in het document met MongoDB

  4. Het lijkt erop dat wanneer ik fs.writeFile() doe, het gewijzigde bestand nodemon opnieuw opstart. Hoe zorg je ervoor dat het niet opnieuw opstart?