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

MongoDB liczy odrębną wartość?

Podczas gdy .distinct() działa dobrze tylko w celu uzyskania odrębnych wartości dla pola, aby faktycznie uzyskać liczbę wystąpień, jest to lepiej dopasowane do struktury agregacji:

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

});

Również .distinct() Metoda „wyodrębnia” miejsce, w którym określone „odrębne” pole faktycznie znajduje się w tablicy. W takim przypadku musisz zadzwonić $unwind najpierw przetworzymy tutaj elementy tablicy:

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

});

Więc główna praca jest zasadniczo wykonywana w $group poprzez „grupowanie” na wartościach pola, co oznacza to samo, co „różne”. $sum jest operatorem grupującym, który w tym przypadku po prostu dodaje 1 dla każdego wystąpienia tej wartości w polu tej kolekcji.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB usuńJeden()

  2. Kiedy używać GridFS w MongoDB?

  3. Jak włączyć logowanie dla Mongoose i sterownika MongoDB Node.JS?

  4. Jak wyświetlić swoją funkcjęZgodnośćWersja w MongoDB

  5. Jak zwiększyć wartość liczbową w Mongoose?