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

Agregace s aktualizací v mongoDB

Po spoustě problémů, experimentování s mongo shell jsem konečně dostal řešení na svou otázku.

Psudocode:

# To get the list of customer whose score is greater than 2000
cust_to_clear=db.col.aggregate(
    {$match:{$or:[{status:'A'},{status:'B'}]}},
    {$group:{_id:'$cust_id',total:{$sum:'$score'}}},
    {$match:{total:{$gt:500}}})

# To loop through the result fetched from above code and update the clear
cust_to_clear.result.forEach
(
   function(x)
   { 
     db.col.update({cust_id:x._id},{$set:{clear:'Yes'}},{multi:true}); 
   }
)

Pokud máte nějaké jiné řešení pro stejnou otázku, napište prosím komentář.



  1. mongodb seskupit hodnoty podle více polí

  2. Jak uložím/zobrazím odstavce pomocí mongodb?

  3. Jak přejmenuji pole při vyhledávání/projekci v MongoDB?

  4. vložit klíč do redis