sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:Find minimumselementet i array og slet det

Hvis du ikke er begrænset til at have forespørgslen i et enkelt trin, kan du prøve:

trin 1) brug aggregatfunktionen med operatorerne $unwind og $group for at finde minimumselementet for hvert dokument

myresults = db.megas.aggregate( [ { "$unwind": "$items" },  
    {"$group": { '_id':'$_id' , 'minitem': {'$min': "$items.item" } } } ] )

trin 2) løkken gennem resultaterne og $træk elementet fra arrayet

for result in myresults['result']:
    db.megas.update( { '_id': result['_id'] }, 
        { '$pull': { 'items': { 'item': result['minitem'] } } } )


  1. Jeg får fejlen Klasse 'Predis\Client' ikke fundet i Laravel 5.2

  2. 3 måder at vælge rækken med den maksimale værdi i SQL

  3. videregive resultater til en anden kommando i redis

  4. Sådan oprettes forbindelse til Redis-instans (memorystore) fra Googles Standard App Engine (Python 3.7)