Cosmos DB alter collection - PullRequest
       9

Cosmos DB alter collection

0 голосов
/ 20 ноября 2018

Я довольно новичок в Azure, поэтому для некоторых этот вопрос может показаться немного глупым, извиняюсь за это!На самом деле, у меня есть требование, когда мне нужно изменить структуру существующей коллекции космических БД, чтобы она соответствовала одному дополнительному свойству.Как я могу сделать это с помощью хранимой процедуры?Теперь мой сценарий выглядит так, как будто у меня есть существующая коллекция, в которой содержится около 60 документов, и такая же коллекция присутствует и в других средах.Мне нужно добавить одно свойство в структуру коллекции, которое в идеале должно быть одноразовым.

Я проверил Добавление нового свойства в Cosmos DB , но, в отличие от этого, мое требование не являетсяобновить коллекцию через код (C #), вместо этого через SP, как я сказал.Теперь, поскольку мы ничего не можем использовать, кроме запроса SELECT с Cosmos DB, как мне вписаться в функциональность документа ALTER в приведенном ниже фрагменте кода?

function updateDocument(documentName){
    var collection = getContext().getCollection();
    var response = getContext().getResponse();
    collection.queryDocuments(

     // ALTER document code goes here

    );
}

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

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

Что касается обновления документов: Core (SQL) API обеспечивает только запрос через SQL (например, SELECT операторы).Для создания, обновления или удаления необходимо использовать вызовы API / SDK.

0 голосов
/ 20 ноября 2018

Cosmos DB - это база данных NoSQL без схемы.Каждый документ полностью независим друг от друга, и вам не нужно ничего менять, чтобы добавить новое свойство.Вы можете перейти прямо к порталу и сделать это или программно, используя SDK или хранимую процедуру.

Запросы SQL в базе данных Cosmos не могут изменить документы в коллекции.Он может использоваться только для запросов.

Хранимые процедуры могут изменить документ, но для этого необходимо сначала прочитать документ, а затем обновить его.Имейте в виду, что они могут быть выполнены для одного логического раздела.

Я настоятельно рекомендую вам прочитать больше о CosmosDB, потому что, похоже, вы не до конца понимаете, что это такое.

Выможно начать здесь: https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-get-started

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...