Я создаю сайт сообщества с Node.JS и Express, и почти все экспресс-учебники или примеры используют MongoDB, поэтому я проверил это.Единственная БД, которую я использовал до сих пор, - это MySQL, но я не очень хорошо знаком с ней, поэтому мне не мешало бы читать в MongoDB.Mongo выглядит довольно красиво, и модель документа может быть полезной.И с мангустом это легко использовать.Но у меня есть несколько вопросов, поэтому я не трачу много времени на изучение использования MongoDB, если оно совсем не подходит:
Я читал, что MongoDB ненадежен, если выиспользуйте его только на одном компьютере, и вы можете столкнуться с потерей данных.Это правильно?Проект не такой большой, что я мог бы позволить себе еще один сервер, и потеря данных совершенно бесполезна!Представьте, что некоторые сообщения на форуме просто исчезают.Но я думаю, что люди не будут использовать его, если это произойдет.
Сайт будет содержать форум для самостоятельной сборки, и я не уверен, что реляционная БД будет лучше.Однако вы можете сохранять темы со встроенными сообщениями и так далее.Но не знаю, как искать, так как Mongo не поддерживает полнотекстовый поиск.Как вы думаете?
Когда использовать встроенные документы в Mongo?Пример: пользователь может публиковать обновления статуса, как в Twitter.Сохраните ли вы эти обновления в пользовательском документе?Может быть много обновлений.Или документ на обновление и связать его с идентификатором пользователя?3.1 А как сделать запрос по нескольким документам?Вы хотите получить последние 10 обновлений статуса своих друзей.Вы можете сделать это с JOIN в MySQL.
Есть ли способ использовать идентификаторы с автоинкрементным расширением для документов, как в MySQL?Например, у пользователя должен быть уникальный целочисленный ключ, но я не хочу, чтобы какое-то случайное число, как это делает Монго, для того, чтобы идентификаторы пользователя были маленькими.
Как вы обрабатываете состояние гонкив мангуст?Вы загружаете документ из базы данных, редактируете что-то и сохраняете его позже.Но, может быть, это уже изменилось за это время.