MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bisakah saya menentukan apakah string adalah ObjectID MongoDB?

Saya menemukan bahwa validator ObjectId luwak berfungsi untuk memvalidasi objectIds yang valid tetapi saya menemukan beberapa kasus di mana id yang tidak valid dianggap valid. (misalnya:string sepanjang 12 karakter)

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

Apa yang berhasil bagi saya adalah mentransmisikan string ke objectId dan kemudian memeriksa apakah string asli cocok dengan nilai string dari objectId.

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

Ini berfungsi karena id yang valid tidak berubah saat dicor ke ObjectId tetapi string yang mendapatkan valid palsu akan berubah saat dicor ke objectId.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $setEquals

  2. Gagal mengonfigurasi DataSource secara otomatis:'spring.datasource.url' tidak ditentukan

  3. Mengapa mongoDB menggunakan objectID?

  4. Masukkan kriteria pencocokan Elemen Array dalam dokumen MongoDB?

  5. Menggunakan PouchDB dengan MongoDB