我正在使用mule的MongoDB连接器来更新items集合中的文档。 我在本文档中尝试更新的元素是如下所示的地图 -
"ratings": {"stars":4.5 , "votes":232},
但是,连接器将子项更新为String -
"ratings": "{\"stars\":4.5 , \"votes\":232}",
以下是进行更新的流程 -
<flow name="update-subitem-in-db">
<logger message="Updating in DB for item #[itemId] -- #[payload] )" level="INFO" doc:name="Logger" />
<mongo:update-objects-by-function-using-map
collection="items" config-ref="Mongo_DB" doc:name="Update Object"
upsert="true" function="$set" multi="false">
<mongo:query-attributes>
<mongo:query-attribute key="_id">#[itemId]</mongo:query-attribute>
</mongo:query-attributes>
<mongo:element-attributes>
<mongo:element-attribute key="ratings">#[payload]</mongo:element-attribute>
</mongo:element-attributes>
</mongo:update-objects-by-function-using-map>
</flow>
有任何建议:如何解决此问题?
答案 0 :(得分:0)
<json:json-to-object-transformer doc:name="JSON to Object" returnClass="java.util.HashMap"/>
然后你可以打电话
#[message.payload.ratings.stars]