Jeg fandt ud af, at mongoose ObjectId-validatoren virker til at validere gyldige objectId'er, men jeg fandt nogle få tilfælde, hvor ugyldige id'er blev betragtet som gyldige. (f.eks.:enhver 12 tegn lang streng)
var ObjectId = require('mongoose').Types.ObjectId;
ObjectId.isValid('microsoft123'); //true
ObjectId.isValid('timtomtamted'); //true
ObjectId.isValid('551137c2f9e1fac808a5f572'); //true
Det, der har virket for mig, er at caste en streng til et objectId og derefter kontrollere, at den originale streng matcher strengværdien af objectId.
new ObjectId('timtamtomted'); //616273656e6365576f726b73
new ObjectId('537eed02ed345b2e039652d2') //537eed02ed345b2e039652d2
Dette virker, fordi gyldige id'er ikke ændres, når de castes til et ObjectId, men en streng, der får en falsk gyldig, ændres, når den castes til et objectId.