Checking if string is an ObjectId in MongoDB using Mongoose

Checking if string is an ObjectId in MongoDB using Mongoose

Problem

Using mongoose.Types.ObjectId.isValid to check if an ObjecId is valid and not a random string will return TRUE for any string of 12 bytes, this could be catastrophic.

Screenshot 2020-07-08 at 6.18.15 PM.png

Solution

To solve this, I suggest you create a new ObjectId using the string, then compare the results. ObjectId will always return thesame value if its a true

Screenshot 2020-07-08 at 6.25.38 PM.png