Как сделать запрос к базе данных cosmos для некоторых документов, изменить их свойства и сохранить их обратно - PullRequest
0 голосов
/ 07 июня 2019

Я борюсь с лазурной функцией. Цель функции - получить некоторые объекты из космоса, обновить их и сохранить обратно.

Функция выглядит примерно так

[FunctionName("update-in-cosmosdb")]
public async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage req,
        [CosmosDB(
            databaseName: "name",
            collectionName: "col-name",
            ConnectionStringSetting = "COSMOSDB-CONNECTIONSTRING")] DocumentClient client,
        ILogger log)
    {
        var documentDatabase = Environment.GetEnvironmentVariable("DB-NAME");
        var documentCollection = Environment.GetEnvironmentVariable("COL-NAME");
        var uri = UriFactory.CreateDocumentCollectionUri(documentDatabase, documentCollection);
        var query = client.CreateDocumentQuery<MyModelClass>(uri,
            "SELECT TOP 10 c.id, c.PropertyToChange  FROM c WHERE c.id IN (" + ids+ ")", new FeedOptions {EnableCrossPartitionQuery = true}).ToList();

        foreach (var o in query)
        {
            o.PropertyToChange = someNewValue;
        }

тогда я бы хотел сохранить обновление соответствующих документов в cosmos-db. Каким должен быть способ сделать это? Что может быть важно, так это тот факт, что MyModelClass содержит только несколько свойств - документ в cosmos-db намного сложнее, и я не хочу касаться других свойств. MyModelClass, конечно, содержит Id

1 Ответ

2 голосов
/ 07 июня 2019

Вы ищете Partial update. В настоящее время нет способа извлечения документа, который выполняет изменение, и его обновления.

Вам необходимо сохранить весь документ как новыйодин с изменениями, если вы хотите обновить его.

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