sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB:Hitta minimielementet i arrayen och ta bort det

Om du inte är begränsad till att få frågan i ett enda steg kan du prova:

steg 1) använd aggregeringsfunktionen med operatorerna $unwind och $group för att hitta minimiobjektet för varje dokument

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

steg 2) slingan genom resultaten och $dra elementet från arrayen

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


  1. Mongoose befolka efter räddning

  2. Löpande handledare från värden, selleri från en virtualenv (Django-app)

  3. MongoDB $objectToArray

  4. MongoDB VÄLJ RÄKNINGSGRUPP EFTER