Du bör använda find , som du redan är, och inte aggregering som kommer att gå långsammare eftersom den måste skanna alla värdena för _id-fält för att räkna ut max.
Som kommentarerna påpekade finns det nej skillnad mellan att använda find() och findOne() - funktionellt eller elegansmässigt. Faktum är att findOne i skalet (och i drivrutinerna som implementerar det) definieras i termer av fynd (med gräns -1 och med vackert tryck i skalet).
Om du verkligen vill göra motsvarande
db.collection.find().sort({_id:-1}).limit(1).pretty()
som findOne du kan göra det med denna syntax:
db.collection.findOne({$query:{},$orderby:{_id:-1}})