Так что я просто любитель в мангусте и пробовал несколько вещей, но не могу найти хорошую структуру данных или отношение к моей проблеме.
Так, в проекте есть, например, модель клиента. Эта модель клиента имеет уникальный идентификатор для каждой лабораторной среды.
Так, например, идентификатор клиента: 123, содержит данные для среды lab5a и labe2e. Теперь это разные субдокументы с одинаковыми ключами для lab5a и labe2e. Я просто не могу понять, как это понять, чтобы можно было создавать функции, основанные на среде и обычай.
Я опубликую пример через минуту.
Так, например:
коллекция клиентов в mongodb имеет запись, которая выглядит следующим образом:
{
"_id" : "fc290ca0-b024-11e8-be48-813970d10d98",
"data" : {
"lab5a" : {
"cityId" : "schiphol1",
"suspended" : false,
"budgetDetails" : {
"budgetLimit" : "0",
"budgetResetDayOfMonth" : "1"
},
"cpes" : [
{
"cpeId" : "3C36E4-EOSSTB-TEST06"
},
{
"cpeId" : "3C36E4-EOSSTB-003356372810"
},
{
"cpeId" : "3C36E4-EOSSTB-003356372811"
}
],
"products" : [],
"downstreamError" : false,
"credentials" : [
{
"credentialId" : "test8"
},
{
"credentialId" : "test9"
}
]
},
"lab5a_mch" : {
"cityId" : "schiphol1",
"suspended" : false,
"budgetDetails" : {
"budgetLimit" : "0",
"budgetResetDayOfMonth" : "1"
},
"cpes" : [
{
"cpeId" : "3C36E4-EOSSTB-TEST06"
},
{
"cpeId" : "3C36E4-EOSSTB-003356372810"
}
],
"products" : [],
"downstreamError" : true,
"credentials" : [
{
"credentialId" : "fc290ca0-b024-11e8-be48-813970d10d98"
}
]
}
}
}
Тогда есть вторая коллекция под названием Cpe:
{
"_id" : "3c36e4-eosstb-test06",
"data" : {
"lab5a" : {
"smartcardId" : "999994999997",
"disabled" : false,
"customerId" : "fc290ca0-b024-11e8-be48-813970d10d98",
"downstreamError" : false,
"extSerialNumber" : "extSerialNumber123",
"physicalDeviceType" : "STB - ARRIS - UHD",
"componentType" : "VSC"
},
"lab5a_mch" : {
"smartcardId" : "999994999997",
"disabled" : false,
"customerId" : "fc290ca0-b024-11e8-be48-813970d10d98",
"downstreamError" : true,
"physicalDeviceType" : "STB - ARRIS - UHD",
"componentType" : "VSC"
}
}
}
Теперь я хочу забрать «данные» и дать возможность заполнить детали для каждой среды и получать их по запросу.
Поэтому, когда будет выполнен вызов для обновления клиента для lab5a, я хочу иметь возможность получить этого клиента и обновить только данные для lab5a.
Но, как вы можете видеть, поля под каждой средой одинаковы, только другие значения.
Я просто не могу понять, как построить хорошую поддерживаемую схему для 4-5 таких сред, каждый раз под одним конкретным стандартом, то же самое для нескольких клиентов каждый раз.
То же самое для cpe и таблицы продуктов и т. Д.
Также то же самое о том, как создавать запросы, а затем обновлять или получать информацию о клиенте и его конкретной лабораторной среде и т. Д .?
Я действительно надеюсь, что кто-то может помочь мне с этим, потому что я просто не могу понять это или понять это. (