Я использовал только mongodb. По моему личному мнению, я бы рекомендовал начать с чего-то низкого уровня, а затем двигаться вверх. В противном случае вы можете воспользоваться дополнительными расширенными функциями, предоставляемыми драйверами более высокого уровня, такими как мангуста, без реальной выгоды.
Проблема, с которой я столкнулся с mongodb, которая является эндемичной для node.js, является плохой документацией. Существует документация и многое, но это не всегда полезно. То, что я видел до сих пор, не содержит хороших и полных примеров использования производства водителю. Документация заполнена тем же шаблоном примера открытия соединения, выдает команду и закрывает соединение. Вы можете сказать, что это копия и вставка из шаблона, потому что каждый пример включает необходимые для всего, что может потребоваться, а не только то, что необходимо для каждого примера.
Чтобы дать пример, взятый целиком в случайном порядке:
- сырец {Boolean, по умолчанию: FALSE}, выполнять операции с использованием необработанных буферов BSON.
Что именно означает «выполнять операции с использованием необработанных буферов-бунеров»? Я не могу найти его объясненным нигде, и поиск Google для этой фразы не помогает. Возможно, я мог бы продолжить Google, но мне не пришлось бы этого делать. Информация должна быть там. Есть ли производительность, стабильность, целостность, совместимость, переносимость или функциональные преимущества для включения/отключения этой опции? Я действительно понятия не имею, глубоко погрузившись в код, и если вы в моей лодке, это серьезная проблема. У меня есть демон, где безупречная настойчивость не требуется, но программа должна быть очень стабильной во время выполнения. Я мог предположить, что это означает, что он ожидает от меня десериализации и сериализации в JSON или что-то низкого уровня, внутреннего и прозрачного для пользователя, но я могу ошибаться. Хотя я склонен делать хорошие предположения, я не могу полагаться на предположение и догадки при создании жизненно важных систем. Поэтому здесь я могу либо проверить свое утверждение с кодом, либо углубиться в Google или их код. Как один это не так плохо, но я нахожу себя в этой ситуации много раз, читая их документацию. Разница может означать дни, потраченные на задание в сравнении с часами. Мне нужно подтверждение, и документация едва дает мне объяснение, не говоря уже о подтверждении.
Документация отправляется. Он не объясняет события, дает смутные подробности о том, когда возникают ошибки или о характере этих ошибок, и часто существует несколько способов достижения возможности подключения, которая может быть неясной. Вы можете пройти, и это не совсем бесполезно, но оно очень грубо по краям. Вы обнаружите, что некоторые вещи оставляют догадки и эксперименты.
Зачем использовать уровень схемы для схемы без базы данных. Если вы хотите, чтобы база данных, основанная на схемах, использовала что-то еще, что для нее создано. (Mongoose - это просто абстракция схемы mongodb) –