我正在通过 Mule 4 api 中的 MongoDB 连接器 v5.3.1 访问 CosmosDB3.2。
我在数据库中有以下集合:
{ "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 中没有序列支持。
谢谢,斯瓦蒂耆那教