Добавление нового свойства в Cosmos DB - PullRequest
0 голосов
/ 10 мая 2018

У меня действительно было немало проблем с поиском ответа на этот вопрос.

Если я создаю новый документ в коллекции, я могу присвоить ему любые свойства, которые мне нужны.

Есть ли способ добавить новое свойство ко всем моим документам? Кажется, Cosmos DB сопротивляется всему, что я пробовал. Нужно ли удалять существующие документы и создавать новые?

Было бы неплохо узнать, как это сделать в коде C #, если это возможно. Javascript тоже хорошо, хотя.

1 Ответ

0 голосов
/ 10 мая 2018

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

Если вы можете использовать C #, вы можете легко это сделать с помощью Cosmonaut

var items = await cosmoStore.Query().ToListAsync();
foreach(var item in items){
   item.YourProperty = "YourValue";
}
await cosmosStore.UpdateRangeAsync(items);

При выборе элементов ваше значение будет по умолчанию равным значению свойства по умолчанию, если оно отсутствует, и при его обновлении оно будет добавлено.

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