sql >> Database >  >> NoSQL >> MongoDB

MongoDB:Zoek het minimale element in array en verwijder het

Als u niet beperkt bent tot het uitvoeren van een zoekopdracht in één enkele stap, kunt u het volgende proberen:

stap 1) gebruik de aggregatiefunctie met de operators $unwind en $group om het minimumitem voor elk document te vinden

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

stap 2) de lus door de resultaten en $trek het element uit de array

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


  1. Een gids voor query's in Spring Data MongoDB

  2. MongoParseError:opties useCreateIndex, useFindAndModify worden niet ondersteund

  3. MongoDB:hoe het aantal sleutels in een document te tellen?

  4. Hoe voeg ik een document met datum in Mongo in?