var studs = db.students.find(); for (var i = studs.length()-1; i >= 0; i--) { db.students.update( { _id: i }, { $pull: { "scores": getMinScore(studs[i]) } } ); } function getMinScore(stud) { var i, minScore = stud.scores[0].score; for (i = 1; i < stud.scores.length; i++) { if (stud.scores[i].score < minScore) { minScore = stud.scores[i]; } } return minScore; }