MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB :recherchez l'élément minimal dans le tableau et supprimez-le

Si vous n'êtes pas obligé d'effectuer la requête en une seule étape, vous pouvez essayer :

étape 1) utilisez la fonction d'agrégation avec les opérateurs $unwind et $group pour trouver l'élément minimum pour chaque document

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

étape 2) la boucle à travers les résultats et $extraire l'élément du tableau

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