如果您不限于一步就完成查询,则可以尝试:
步骤1)将聚合函数与$ unwind和$ group运算符配合使用,以查找每个文档的最小项目
myresults = db.megas.aggregate( [ { "$unwind": "$items" },
{"$group": { '_id':'$_id' , 'minitem': {'$min': "$items.item" } } } ] )
步骤2)遍历结果并$ pull从数组中元素
for result in myresults['result']:
db.megas.update( { '_id': result['_id'] },
{ '$pull': { 'items': { 'item': result['minitem'] } } } )