MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tôi có thể xác định xem một chuỗi có phải là MongoDB ObjectID không?

Tôi thấy rằng trình xác thực ObjectId mongoose hoạt động để xác thực các id đối tượng hợp lệ nhưng tôi đã tìm thấy một số trường hợp trong đó các id không hợp lệ được coi là hợp lệ. (ví dụ:chuỗi dài 12 ký tự bất kỳ)

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

Điều đã hoạt động đối với tôi là truyền một chuỗi đến một objectId và sau đó kiểm tra xem chuỗi ban đầu có khớp với giá trị chuỗi của objectId hay không.

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

Điều này hoạt động vì các id hợp lệ không thay đổi khi được truyền sang ObjectId nhưng một chuỗi có giá trị sai sẽ thay đổi khi được truyền sang objectId.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb:Cấu trúc lập chỉ mục đa khóa?

  2. MongoDB $ toDecimal

  3. MongoDB:Sử dụng khớp với các biến tài liệu đầu vào

  4. Cần một giải pháp thay thế để tra cứu một chuỗi thành objectID ForeignField

  5. Redis và MongoDB:Những điều bạn cần biết