使用mule mongodb连接器升级地图

时间:2015-06-14 00:58:18

标签: mongodb mule mule-el

我正在使用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>

有任何建议:如何解决此问题?

1 个答案:

答案 0 :(得分:0)

    <json:json-to-object-transformer doc:name="JSON to Object" returnClass="java.util.HashMap"/>

然后你可以打电话

    #[message.payload.ratings.stars]