MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Сравнете елементите на масива, премахнете този с най-нисък резултат

Това може да стане в няколко стъпки. Първата стъпка е да вземете списък с документи с минимален резултат, като използвате рамката за агрегиране с $match , $unwind и $group оператори, които рационализират вашите документи, за да намерите минималния резултат за всеки документ:

lowest_scores_docs = db.school.aggregate([ 
    { "$match": {"scores.type": "homework"} },
    { "$unwind": "$scores" },  { "$match": {"scores.type": "homework"} },
    { "$group": { "_id":"$_id", "lowest_score": {"$min": "$scores.score" } } } ] )

Втората стъпка е да преминете през речника по-горе и да използвате $pull оператор в заявката за актуализиране, за да премахнете елемента от масива, както следва:

for result in lowest_scores_docs["result"]:
    db.school.update({ "_id": result["_id"] }, 
        { "$pull": { "scores": { "score": result["lowest_score"] } } } )


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. node.js база данни

  2. Опитвам се да получа списък с колекции от mongoose

  3. MongoDB dropIndexes()

  4. Мога ли да прочета csv файл вътре в Javascript файл на Mongo Shell?

  5. Spark към MongoDB чрез Mesos