I can think of two possibillities:
(a) find all the documents with dogs, for each document found loop the pets to find the lowest dog, then remove it:
(b) use aggregate or mapReduce to find the lowest dogs per _id and remove it
You can find an analog expample (for node.js) on
https://gist.github.com/4080463 (the mapReduce (2nd file) actually doesnt remove the lowest score but you can add this to the finalize function
cheers