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

MongoDB tæller særskilt værdi?

Mens .distinct() fungerer godt til blot at opnå de distinkte værdier for et felt, for faktisk at få tællinger af forekomster, dette er bedre egnet til aggregeringsrammen:

Collection.aggregate([
    { "$group": {
        "_id": "$field",
        "count": { "$sum": 1 }
    }}
],function(err,result) {

});

Også .distinct() metoden "abstrakter" fra hvor det angivne "distinkte" felt faktisk er inden for en matrix. I dette tilfælde skal du ringe til $unwind først til at behandle array-elementerne her:

Collection.aggregate([
    { "$unwind": "$array" },
    { "$group": {
        "_id": "$array.field",
        "count": { "$sum": 1 }
    }}
],function(err,result) {

});

Så hovedarbejdet udføres grundlæggende i $group ved at "gruppere" på feltværdierne, hvilket betyder det samme som "særskilt". $sum er en grupperingsoperator, som i dette tilfælde blot lægger 1 sammen for hver forekomst af den værdi i feltet for den pågældende samling.



  1. Sådan omdirigeres output fra Redis-abonnement

  2. hvordan man gentager en mongo-markør i en løkke i python

  3. Forstå MongoDB BSON Dokumentstørrelsesgrænse

  4. Hvorfor bruge Redis i stedet for MongoDb til cachelagring?