Det finns inga större effektivitetsskillnader vad jag vet förutom i vissa fall som att sortera efter datum (eftersom ObjectId har datetime i sig, etc.)
Till exempel skulle du förlora möjligheten att helt enkelt beställa efter _id du skulle också förlora fördelarna för sharding och distribution . Bortsett från det, medan jag personligen fortfarande skulle använda ObjectId's i alla fall ... så länge som int är obehagligt (naturligtvis) ... du borde ha det bra.
Sedan _id "kommer alltid tillbaka" i en fråga. Jag antar att du skulle spara lite tid och dataöverföring (lite.)
Du kan till och med skapa ditt _id en array om du vill, och det kommer att indexera fint se denna svar (inte för att jag nödvändigtvis skulle rekommendera det för det mesta.)
Se även:Optimera objekt-ID:n