sql >> Database >  >> NoSQL >> MongoDB

Aggregatie met update in mongoDB

Na veel moeite, het experimenteren met mongo-shell, heb ik eindelijk een oplossing voor mijn vraag.

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}); 
   }
)

Geef een reactie als je een andere oplossing voor dezelfde vraag hebt.



  1. Tijdscomplexiteit van zadd wanneer de waarde een hogere score heeft dan de hoogste score in de beoogde gesorteerde set

  2. Eenvoudige manier om code te genereren met Mongoose en Node.js en Underscore?

  3. Stel redis-sleutel/waarde in met camel-redis

  4. $groepsresultaat verkrijgen met groepstelling