O ile wiem, nie ma większych różnic w wydajności z wyjątkiem w niektórych przypadkach, takich jak uporządkowanie według daty (ponieważ ObjectId ma w sobie datę i godzinę itp.)
Na przykład stracisz możliwość prostego zamawiania według _id stracisz również korzyści z shardingu i dystrybucji . Poza tym, chociaż i tak osobiście używałbym identyfikatora ObjectId ... tak długo, jak int jest niespokojne (oczywiście) ... powinieneś być w porządku.
Od _id zawsze "powraca" w zapytaniu Przypuszczam, że zaoszczędzisz trochę czasu i transferu danych (trochę).
Możesz nawet ustawić swój _id tablica, jeśli chcesz, a wszystko będzie ładnie indeksować. Zobacz to odpowiedź (nie żebym to zawsze polecał).
Zobacz też:Optymalizacja identyfikatorów obiektów