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

Node.js + Mongoose.js Jak uzyskać sumę zamówień składanych w miesiącu lub tygodniu?

Jeśli chcesz uzyskać tylko sumę zamówień w określonym czasie, możesz po prostu użyć zapytania zakresowego w dniu, używając $gte i $lt operatory stylu:

var query = Model.find({ 
    "createdDate": { 
        "$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
    }
}).count()

query.exec(function(err, count) {

A to po prostu zwróci liczbę znalezionych dokumentów w tym zakresie.

Jeśli chcesz zsumować wartość z wnętrza dokumentu, a nawet pobrać coś takiego jak „suma dzienna” z tego zakresu dat, możesz w tym celu użyć struktury agregacji:

Model.aggregate([
    { "$match": {
        "$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
    }},
    { "$group": {
        "_id": { "$dayOfYear": "$createdDate" }
        "totalValue": { "$sum": "$orderTotal" }
    }}
],
function(err, result) {

To nie tylko korzysta z $sum operator do zsumowania wartości naszego pola „orderTotal”, ale także korzysta z Agregacja dat operator do grupowania według wszystkich wartości każdego dnia w podanym zakresie.

Jeśli ten ostatni przypadek jest tym, czego chcesz, możesz użyć różnych operatorów, aby podzielić różne okresy dat, które chcesz umieścić w swoich wynikach.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Błąd:queryTxt ETIMEOUT podczas łączenia się z MongoDb Atlas przy użyciu Mongoose

  2. Mongoid:jak wykonać zapytanie dla wszystkich obiektów, w których wartość wynosi zero?

  3. Jak grupować dane za pomocą szablonu mongo

  4. Monitorowanie bazy danych za pomocą ClusterControl

  5. django.core.exceptions.ImproperlyConfigured:„django_mongodb_engine” nie jest dostępnym zapleczem bazy danych