Я получаю доступ к CosmosDB3.2 через соединитель MongoDB v5.3.1 в API Mule 4.
У меня есть следующая коллекция в базе данных:
{ "id": "range",
"from": 100,
"to": 1,
"used": 0
}
Я получу данные изэта коллекция основана на id = range.Однако в то же время я также хочу обновить и извлечь обновленные данные - для поддержки нескольких одновременных обращений с правильным поиском данных.
Поисковый запрос:
%dw 2.0
output application/json
---
{
"id" : "range"
}
Обновленный запрос:
%dw 2.0
output application/json
---
{ "\$inc": {
"from": -1,
"used": 1
}}
Следовательно, код соединителя становится:
<mongo:find-one-and-update-document doc:name="Find one and update document" doc:id="f7fb0fe6-ae0c-4d82-8766-92d6e7081c0e" config-ref="MongoDB_Config" collectionName="test" returnNewDocument="true">
<mongo:find-query ><![CDATA[#[vars.findQuery]]]></mongo:find-query>
<mongo:content-to-update ><![CDATA[#[vars.updateQuery]]]></mongo:content-to-update>
</mongo:find-one-and-update-document>
Ожидаемая полезная нагрузка:
{
"id": "range",
"from": 99,
"to": 1,
"used": 1
}
Однако я решил, что соединитель «Найти и обновить документ» не можетпринять функцию обновления "inc".Это дает следующее исключение:
The dollar ($) prefixed field '$inc' in '$inc' is not valid for storage.
Кто-нибудь сталкивался с подобной проблемой и есть какое-либо решение, пожалуйста, помогите.Я думаю, что поддержка последовательности отсутствует в mongodb / cosmosdb.
Спасибо, Свати Джайн