Nếu bạn không bị giới hạn trong việc đặt truy vấn trong một bước duy nhất, bạn có thể thử:
bước 1) sử dụng hàm tổng hợp với các toán tử $ unwind và $ group để tìm mục tối thiểu cho mỗi tài liệu
myresults = db.megas.aggregate( [ { "$unwind": "$items" },
{"$group": { '_id':'$_id' , 'minitem': {'$min': "$items.item" } } } ] )
bước 2) vòng lặp qua các kết quả và $ kéo phần tử khỏi mảng
for result in myresults['result']:
db.megas.update( { '_id': result['_id'] },
{ '$pull': { 'items': { 'item': result['minitem'] } } } )