MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak liczyć wystąpienia w zagnieżdżonym dokumencie w mongodb?

Istnieje kilka sposobów podejścia do tego, w zależności od tego, ile danych musisz przetworzyć. Możesz użyć Struktury agregacji w MongoDB 2.2+ lub prawdopodobnie Map/Reduce . Zobacz Porównanie poleceń agregacji aby zapoznać się z podsumowaniem funkcji i ograniczeń.

Oto przykład z wykorzystaniem struktury agregacji:

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

W przypadku przykładowego dokumentu to zwraca:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Relacje wiele-do-wielu w CouchDB lub MongoDB

  2. Co nowego w MongoDB 4.2

  3. Jakie są zasady liczby mnogiej Mongoose (Nodejs)?

  4. Grupuj MongoDB według czasu trwania

  5. Utwórz połączenie mongo i ożyw je do wykonania całego zestawu testowego w Ready!API