sql >> Databáze >  >> NoSQL >> MongoDB

seskupit podle dne/měsíce a vzít průměr hodnocení v daný den/měsíc v mongo

Chcete-li seskupit dokumenty podle dne/měsíce a vrátit klíč měsíce ve výstupu, musíte nejprve $project klíčová pole do příslušných formátů pomocí Datum operátory, zejména $dateToString a $month operátory.

To lze provést v $project etapa před $group krok, ale není to nutné, protože $group potrubí pojme většinou akumulátor operátory.

V předchozím $group kanálu, můžete seskupit dokumenty podle formátovaného klíče data, agregovat pomocí $avg operátor a vrátí měsíc jako celé číslo z předchozího kanálu pomocí $first operátor akumulátoru.

Spuštění následujícího agregačního kanálu by vám mělo poskytnout požadovaný výsledek:

db.collection.aggregate([
  { "$group": {
    "_id": { 
        "$dateToString": { "format": "%Y-%m-%d", "date": "$ceatedAt" } 
    },
    "average": { "$avg": "$rating" },
    "month": { "$first": { "$month": "$ceatedAt" } },
  } }
]) 


  1. Jak používat Memcached s rámcem Yii2

  2. Jak použít agregát MongoDB k získání prvního z každé skupiny, včetně null?

  3. Vypočítejte počet vnořených objektů pomocí C#

  4. Časové razítko k dnešnímu dni v php a mongodb