Предварительный запуск Cosmos DB, как получить значение из другой строки - PullRequest
0 голосов
/ 18 июня 2020

В Cosmos DB у меня есть триггер, это предтриггер. Метод для этого триггера выглядит следующим образом:

 function CalculateFields(){
        var context = getContext(); 
        var request = context.getRequest(); 
        // this is the current request 
        var itemToCreate = request.getBody(); 

        if(itemToCreate["fileType"] == "DivisionConfig")
        {
           itemToCreate["column1"] = 2 * item1["column3"];
        }

, и я хочу получить значение из другой строки, выбранной по идентификатору. itemToCreate - текущий элемент, как получить элемент для id = 1? Могу ли я сделать это в этом методе, или, скорее, мне нужно передать переменную в коде C#, когда я вызываю этот триггер:

using (CosmosClient client = new CosmosClient(Endpoint, Key))
            {
                var container = client.GetContainer(DatabaseId, CollectionId);

                ItemResponse<T> response2 = await container.CreateItemAsync(item, new PartitionKey("Mypk"), new ItemRequestOptions { PreTriggers = new List<string> { "CalculateFields" } });
                return response2;
            }

item1["column3"] - это еще одна строка из той же коллекции.

1 Ответ

0 голосов
/ 18 июня 2020

Предварительные триггеры могут работать только с самим элементом и не могут принимать параметры. Я не совсем понимаю, что вы пытаетесь здесь сделать, но, возможно, лучше вместо этого использовать Post-Trigger.

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