Я використовував тільки mongodb. На мою особисту думку, я б рекомендував починати з чогось низького рівня, а потім рухатися вгору. В іншому випадку ви можете опинитися за допомогою додаткових розширених функцій, що надаються драйверами вищого рівня, як мангуст, без жодної фактичної користі.
Проблема, яка була у мене з mongodb, яка ендемічна для node.js, - це погана документація. Існує документація і багато, але це не завжди є найбільш корисним. Що я бачив до цих пір, немає хороших і ґрунтовних прикладів використання драйвера у виробництві. Документація заповнюється тим же шаблоновим прикладом відкрити з'єднання, видати команду та закрити з'єднання. Ви можете сказати, що це копія та вставлення з шаблону, оскільки кожен приклад включає необхідне для всього, що може знадобитися, а не лише те, що потрібно для кожного прикладу.
Щоб навести приклад, взятий повністю навмання:
- raw {Boolean, типово: false}, виконайте операції, використовуючи буфери bson.
Що саме робить "виконання операцій із використанням сирих бузонів bson"? Я не можу знайти його десь поясненим, і пошук Google за цією фразою не допомагає. Можливо, я міг би продовжити Google, але мені не варто. Інформація повинна бути там. Чи є якісь продуктивність, стабільність, цілісність, сумісність, портативність або функціональні переваги для включення / відключення цієї опції? Я справді не маю уявлення, не заглиблюючись у кодекс, і якщо ти в моєму човні, це серйозна проблема. У мене демон, де не потрібна ідеальна наполегливість, але програма повинна бути дуже стабільною під час виконання. Я можу припустити, що це означає, що він очікує від мене десеріалізації та серіалізації до JSON або це щось низьке, внутрішнє та прозоре для користувача, але я можу помилитися. Хоча я схильний робити хороші припущення, я не можу покластися на припущення та здогадки при створенні життєво важливих систем. Тож тут я можу або перевірити своє твердження з кодом, або заглибитися набагато глибше в Google або їх код. Як один, це не так вже й погано, але я знаходжу себе в цій ситуації багато разів, читаючи їх документацію. Різниця може означати дні, витрачені на виконання завдання, а не години. Мені потрібно підтвердження, і документація ледве дає мені пояснення, не кажучи вже про підтвердження.
Документація поспішає. Це не пояснює події, дає розпливчасті деталі про те, коли викидаються помилки чи характер цих помилок, і часто існує кілька способів налагодити зв’язок, який може бути незрозумілим. Можна обійтись і зовсім не марним, але він дуже шорсткий по краях. Ви знайдете, що деякі речі залишаються для здогадок та експериментів.