MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Мога ли да определя дали даден низ е MongoDB ObjectID?

Открих, че валидаторът на mongoose ObjectId работи за валидиране на валидни objectId, но открих няколко случая, когато невалидните идентификатори се считат за валидни. (напр.:произволен низ от 12 знака)

var ObjectId = require('mongoose').Types.ObjectId;
ObjectId.isValid('microsoft123'); //true
ObjectId.isValid('timtomtamted'); //true
ObjectId.isValid('551137c2f9e1fac808a5f572'); //true

Това, което работи за мен, е прехвърлянето на низ към objectId и след това проверката дали оригиналният низ съответства на стойността на низа на objectId.

new ObjectId('timtamtomted'); //616273656e6365576f726b73
new ObjectId('537eed02ed345b2e039652d2') //537eed02ed345b2e039652d2

Това работи, защото валидните идентификатори не се променят, когато се прехвърлят към ObjectId, но низ, който получава фалшива валидност, ще се промени, когато се прехвърля към objectId.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как мога да генерирам ObjectId с mongoose?

  2. Намерете дублиращи се URL адреси в mongodb

  3. Mongo DB намира всички записи с най-висока стойност в зависимост от ключово поле

  4. Сортиране по виртуално поле в mongoDB (mongoose)

  5. MongoDB insertOne()