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

Porównaj elementy tablicy, usuń ten z najniższym wynikiem

Można to zrobić w kilku krokach. Pierwszym krokiem jest pobranie listy dokumentów z minimalnym wynikiem przy użyciu struktury agregacji z $match , $unwind i $group operatorzy, którzy usprawniają twoje dokumenty, aby znaleźć minimalny wynik dla każdego dokumentu:

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

Drugim krokiem jest przejście przez powyższy słownik i użycie $pull w zapytaniu aktualizacyjnym, aby usunąć element z tablicy w następujący sposób:

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. Czy można otrzymywać powiadomienia o zmniejszeniu postępu mapy w mongo?

  2. MongoDB $reverseArray

  3. Mongoose, sortuj według obcego/wypełnionego klucza

  4. MongoDB $in Operator potoku agregacji

  5. Jak uzyskać ostatnią wiadomość z rozmowy na czacie w mongodb