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

Съхранявайте enum MongoDB

TL;DR:Низовете вероятно са по-безопасни избор и разликата в производителността трябва да е незначителна. Целите числа имат смисъл за огромни колекции, където enum трябва да бъде индексирано. YMMV.

Вярно.

Според мен това е ключово предимство на целите числа. Но също така изисква да се уверите, че свързаните стойности на enum не се променяй. Ако го прецакате, почти сигурно ще предизвикате хаос , което е огромен недостатък.

Ако всъщност използвате тип данни enum, това вероятно е някакво вътрешно число, така че цялото число трябва да изисква по-малко обработка. Така или иначе, тези разходи трябва да са незначителни.

Повтарям много от казаното, но може би това ще помогне на други читатели. Обобщавайки:

  • Смесването на картата на стойността на enum всява хаос. Представете си вашия Declined състоянията внезапно се интерпретират като Accepted , защото Declined имаше стойност '2' и сега е Accepted защото сте пренаредили enum и сте забравили да присвоите стойности ръчно... (тръпне )
  • Низовете са по-изразителни
  • Целите числа заемат по-малко място. Дисковото пространство обикновено няма значение, но индексното пространство ще изяде RAM, което е скъпо.
  • Целочислените актуализации не преоразмеряват обекта. Низовете, ако техните дължини варират значително, може да изискват преразпределение. Подпълването на низове и коефициентът на подпълване обаче трябва да облекчат това.
  • Цели числа могат да бъдат флагове (все още не подлежат на запитване (все още), за съжаление вижте SERVER-3518 )
  • Целите числа могат да бъдат заявени чрез $gt / $lt така че можете ефективно да внедрите сложни $or заявки, въпреки че това е доста тайнствено изискване и няма нищо лошо в $or запитвания...



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Намиране на най-близки точки до определена точка, предвид нейните координати и максимално разстояние - Резултатът от заявката не е дефиниран, използвайки Mongoose със MEAN Stack

  2. MongoDB $toLong

  3. Времева сложност на $addToset срещу $push, когато елементът не съществува в масива

  4. Как да правите заявки с множество условия и тези условия са зависими

  5. MongoDB изберете и свържете полета