Я рассмотрел различные способы создания мультитенантов в MongoDB и решил использовать общие коллекции с идентификатором организации в документах для разделения арендаторов.Это работало хорошо, но я столкнулся с проблемой.У меня есть база данных продуктов, и каждый из этих продуктов имеет цену.Мы хотели бы, чтобы наши пользователи могли настраивать цены в случае, если наши значения по умолчанию неверны, но мы не ожидаем, что пользователи будут настраивать цену для каждого продукта.В идеале я бы хотел клонировать только те продукты, которые изменились у арендатора.Клонированный документ будет в основном таким же, как и оригинал, но с другой ценой и полем OrganizationId.
При получении продуктов для организации я хотел бы получить все настроенные продукты, а затем всепродукты по умолчанию для продуктов, которые они не настроили.Поэтому, если они настроили продукт A, но не продукт B, или CI ожидали получить:
[{
"name": "Product A",
"productType": [
"562e5aafae5d760823898202",
"19221b0207d35f13312e6af8"
],
"price": NumberInt(450),
"description": "Product A",
"manufacturer": "Manufacturer 1",
"organizationId": ObjectId("19221b0207d35f13312e6af8")
},
{
"name": "Product B",
"productType": [
"562e5aafae5d760823898202",
"19221b0207d35f13312e6af8"
],
"price": NumberInt(25),
"description": "Product B",
"manufacturer": "Manufacturer 2"
},
{
"name": "Product C",
"productType": [
"562e5aafae5d760823898202",
"19221b0207d35f13312e6af8"
],
"price": NumberInt(554),
"description": "Product C",
"manufacturer": "Manufacturer 3"
}]
Возможно ли это сделать с помощью одного запроса / публикации, или проектирование моей схемы таким способом означает, что янужно будет делать два отдельных запроса каждый раз, когда я хочу получить продукты для организации?