Я использую Azure CosmosDb в качестве базы данных моего приложения.
Допустим, мне нужно сохранить все страны, города и улицы в моей базе данных. Итак, у меня был бы предмет, который выглядел так:
{
country: Brazil,
size: 1000,
population: 200000,
cities: [
{
city: Rio
population: 8000
streets: [
{
name: A,
postalCode: 12345
},
{
name: B,
postalCode: 34567
}
],
...
Однако, когда я говорю о всех странах, городах и улицах, это становится огромным предметом, больше, чем 2Mb, разрешенный cosmosDb.
Итак, как правильно с этим бороться? Стоит ли разделять города и улицы в разных коллекциях? Однако использование разных коллекций имеет много недостатков, поскольку при обновлении двух разных коллекций невозможно использовать хранимую процедуру или гарантировать транзакцию.