调用insert-object-from-map时,不存储Mule ESB和MongoDB Connector- Collection数据

时间:2014-03-13 00:38:09

标签: mule

我正在尝试在MongoDB Collection中存储JSON文档(以及一些其他属性)。我相信我没有正确使用MongoDB连接器上的insert-object-from-map操作。

我正在从JSON文档创建一个Map并将其传递到连接器中,希望它能创建我的集合。我验证了我的Groovy代码正确创建了Map。正在创建集合,但集合中没有记录。似乎MongoDB连接器没有获取Map。我离开这里了吗?有没有更好的方法使用连接器在集合中创建记录?

这是我的流程:

<flow name="post:/account:googleAccount-config" doc:name="post:/account:googleAccount-config" processingStrategy="asynchronous">
    <object-to-string-transformer encoding="UTF-8" mimeType="application/json" doc:name="Object to String"/>
    <scripting:transformer doc:name="Groovy">
        <scripting:script engine="Groovy" file="src/main/groovy/jsonAccountToMap.groovy"/>
    </scripting:transformer>
    <logger level="INFO" doc:name="Logger"/>

    <mongo:insert-object-from-map config-ref="Mongo_DB_Google_Account" collection="accounts" doc:name="Mongo DB" writeConcern="NORMAL">
        <mongo:element-attributes ref="#[payload]"/>           
    </mongo:insert-object-from-map>
</flow>

我还在我的数据库中添加了一个用户并更新了MongoDB Connector配置以使用它,但仍然没有存储数据。

谢谢! 森

2 个答案:

答案 0 :(得分:0)

您的Mongo插件应该能够正确使用正确的有效负载。如果您将<set-payload value="#[['testkey':'testval']]"/>放在Mongo组件之前,那么您应该使用&#39; testkey&#39;:&#39; testval&#39;到你的收藏。尝试使用<logger message="#[payload]" level="INFO" doc:name="Logger"/>而不是现在的通用记录器记录您的地图。

答案 1 :(得分:0)

好的,一切都在努力。我在MongoDB控制台中查找错误的集合。

似乎连接器将使用经过身份验证和未经身份验证的调用将数据添加到MongoDB中的Collection。

安东,谢谢你的回复!