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

MongoDB tæller elementer i array

Du skal $unwind arrayet "størrelser" og derefter $group efter "item" og "sizes" og brug $sum for at returnere optællingen.

db.collection.aggregate(
    [ 
        { "$unwind": "$sizes" }, 
        { "$group": { 
            "_id": { 
                "item": "$item", 
                "sizes": "$sizes" 
            }, 
            "count": { "$sum": 1 } 
        }}
    ]
) 

som producerer:

{ "_id" : { "item" : "EFG", "sizes" : "S" }, "count" : 1 }
{ "_id" : { "item" : "ABC", "sizes" : "L" }, "count" : 1 }
{ "_id" : { "item" : "ABC", "sizes" : "M" }, "count" : 2 }
{ "_id" : { "item" : "ABC", "sizes" : "S" }, "count" : 1 }



  1. Er dette en gyldig brug af ServiceStack Redis?

  2. Nodejs UUIDv4 producerer konstant id-værdi, når det bruges i Mongoose

  3. Forbinder du direkte til Redis med (klientsiden) javascript?

  4. Forespørgsel for at finde alle dokumenter med ikke-nul millisekunder