хранить и извлекать пользовательские c данные для разных пользователей в mongodb и node.js - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь сделать приложение типа Instagram, используя node.js. Проблема, с которой я столкнулся, заключается в том, как сохранить данные c, указанные пользователем? Я новичок в создании проектов такого типа.

Пользователь регистрируется -> затем входит в систему -> затем загружает изображение. У меня есть коллекция users, откуда я выполняю аутентификацию. Теперь я застрял. Я подумал о том, как работает приложение, но не понимаю, как получить изображения, загружаемые пользователем? Я знаю, как хранить изображения в базе данных, но не знаю, как сделать их пользовательскими. c.

Другими словами: предположим, что userA загружает изображение, а userB загружает изображение. . Как я могу сохранить их в базе данных? - Хранить ли я их вместе, и когда один userA регистрирует в I GET изображения со своим именем, или я сохраняю их по-разному?

Если я храню все изображения всех пользователей в одной коллекции, тогда это было бы очень медленно, если бы там было огромное количество изображений и пользователей. Я хочу знать о каком-то методе, который позволит мне хранить изображения, загруженные пользователем, в определенной c непрерывной памяти, возможно, или любым другим способом.

Любые ресурсы и помощь приветствуются.

Спасибо

1 Ответ

1 голос
/ 10 июля 2020

, если вы хотите разработать такое приложение, вам следует подумать о том, имеет ли смысл сохранять изображения не в базе данных, а в файловой системе.

В базе данных вы затем сохраняете только путь (возможно, в массиве) к соответствующим изображениям и, возможно, метаданные изображений, такие как дата загрузки. В результате ваша база данных не будет такой большой, резервное копирование может выполняться быстрее, а обычное хранилище обычно дешевле, чем хранилище базы данных.

Поскольку очень легко взаимодействовать с файловой системой с помощью nodejs, это было бы хорошим решением.

Другой вариант - использовать mongoDB GridFS. однако я недостаточно знаю об этом, чтобы объяснить это здесь.

Надеюсь, я смогу вам помочь

...