sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB:Najděte minimální prvek v poli a odstraňte jej

Pokud nejste omezeni na to, aby byl dotaz v jediném kroku, můžete zkusit:

krok 1) použijte agregační funkci s operátory $unwind a $group k nalezení minimální položky pro každý dokument

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

krok 2) projděte výsledky a $vytáhněte prvek z pole

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


  1. Agregát MongoDB je po prvním kroku shody pomalý

  2. Jak opravit Lopsided Hash Slots v Redis

  3. Vrátit omezený počet záznamů určitého typu, ale neomezený počet dalších záznamů?

  4. Spark HBase Connector – rok v recenzi