sql >> Database teknologi >  >> NoSQL >> MongoDB

Kan jeg afgøre, om en streng er et MongoDB ObjectID?

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.



  1. Ønsker ikke at skulle starte mongod med 'sudo mongod'

  2. Spring Redis fejlhåndtag

  3. Hvordan bruger man Redis i et C++ program?

  4. Mongodb opdatering dybt indlejret underdokument