Как лучше организовать модель корзины в mongodb

110
20 февраля 2022, 08:50

Помимо модели корзины, есть еще модель products и модель user. У меня есть два варианта организации:
1) Корзина хранит в себе только ID продуктов и будет стучаться к коллекции products
2) Корзина хранит в себе всю информацию о продуктов, также как и products(title, price, rest)

Я думаю, что первый вариант лучше, но верно ли я предполагаю? И тогда, при первом варианте, frontend сначала сделает запрос к cart и, получив ID, сделает запрос к products?

Answer 1

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

Предположим, что у вас следующие сущности:

Card:

_id: objectId
products: Array(ObjectId[product])


Product:

_id: objectId
name: string
description: string
price: number

Тогда вот запрос для получения информации из корзины, включая продукты:

db.getCollection('card').aggregate([{
    $lookup:
       {
         from: "product",
         localField: "products",
         foreignField: "_id",
         as: "products"
       }
}]);

PS. В mongoose, к примеру, все тоже самое можно сделать через populate

READ ALSO
Границы области кластеризации PruneCluster

Границы области кластеризации PruneCluster

Столкнулся с такой проблемой: пытаюсь сделать отображение области кластеризации в PruneCluster, как в markerclustergroup (отвечает свойство ShowCoverageOnHover)

86
Общий файл excel на сервере для редактирования

Общий файл excel на сервере для редактирования

есть нужда в реализации общего файла excel ( здесь будет таблица учета рассылок) на сервере, к которой будут обращаться пользователи через страницу...

96