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

Има ли причини, поради които трябва/не трябва да използвам ObjectId в моя RESTful URL адрес

След като използва ObjectId s в RESTful API няколко пъти, най-големият недостатък наистина е, че те са много шумни по отношение на чист URL. Или ще го оставите като HEX число, или ще го преобразувате в много голямо цяло число, като и двете ще направят донякъде неприветлив URL:

/rest/resource/52435dbecb970072ec3a780f
/rest/resource/25459211534898951476729247759

Добавих „заглавие“ към URL адреса (както прави StackOverflow), за да ги направя малко по-приятелски:

    /rest/resource/52435dbecb970072ec3a780f/FriendlyResourceName

Разбира се, "заглавието" се игнорира в софтуера, но потребителят го вижда и може мислено да игнорира лудия сегмент на ID.

Има много малко полезни неща, които могат да се научат от инфраструктурата, като ги разкрием:

  1. Часово клеймо
  2. Идент. № на машината
  3. Идентификатор на процеса
  4. Случайна нарастваща стойност

Освен потенциално събиране на машинни идентификатори (които обикновено показват броя на клиентите, създаващи ObjectId s), няма много.

ObjectId s не са произволни, така че не можете да ги използвате за сигурност. Винаги ще трябва да защитите данните. Въпреки че може да не се увеличават по очевиден начин, би било лесно да се намерят други ресурси чрез груба сила. Въпреки това, ако преди сте използвали автоматично увеличаващи се идентификатори, това не е нов проблем за вас.

Ако знаете, че не създавате много нови документи в даден момент, може да си струва да използвате един от шаблоните тук, за да създадете по-опростен идентификатор. В едно приложение, което написах, използвах техника за автоматично включване за някои от идентификаторите на документи, които бяха показани в URL адреси, а за тези, които бяха само за Ajax, използвах ObjectId с. Наистина исках някои URL адреси да бъдат лесно „набрани“. Няма форма на ObjectId се въвежда лесно от краен потребител. Това е една от силните страни на MongoDB – че можете да използвате всеки _id формат, който искате. :)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да актуализирам полета на документи в mongo db с помощта на java драйвера?

  2. mongodb групирайте стойности по множество полета

  3. Как да дефинирате обект в масив в схема Mongoose правилно с 2d geo индекс

  4. Защо MongoDB – 10 причини да научите MongoDB за 2022 г

  5. Преобразувайте MongoDB BsonDocument в валиден JSON в C#