Как я могу использовать хранимые процедуры в DocumentDB, которые используют несколько коллекций
Я использую C# для запуска операций на экземпляре DocumentDB и мне очень нравится до сих пор. У меня много кода на C#, который запрашивает несколько коллекций для создания новых коллекций из отношений между первыми двумя коллекциями.
Могу ли я по существу перенести свою логику на сервер в хранимых процедурах? Я попытался ответить на этот вопрос для себя, но все, что я мог найти, это документация о том, как получить коллекцию, связанную с хранимой процедурой. Итак, я подумал, могу ли я вызвать хранимую процедуру, которая вызвала другую хранимую процедуру, передав первую коллекцию?
Можно ли как-нибудь ссылаться на несколько коллекций в хранимой процедуре?
Будет ли легче найти более простой способ узнать, что принадлежит каждой "коллекции", если я храню все в одной коллекции?
1 ответ
Хранимые процедуры выполняются внутри одной коллекции (или одного раздела в многораздельной коллекции). Вызов хранимой процедуры может работать только с данными в этой коллекции / разделе.
Когда я вижу этот вопрос, я обычно задаюсь вопросом, думаете ли вы о коллекциях как о прямом аналоге таблиц из мира SQL или даже об использовании слова "коллекция" из мира MongoDB. В DocumentDB лучше не разделять ваши данные по типам, а смешивать данные разных типов в одной коллекции и отделять их по некоторым другим границам горизонтального масштабирования, таким как арендатор, пользователь, география и т. Д. Если вы это сделаете, пока ваш хранимая процедура не должна пересекать границы арендатора, пользователя или географии, она сможет предоставить вам полностью ACID кросс-документные транзакции.