更新Mule MongoDB云连接器中的运算符

时间:2014-07-03 19:14:34

标签: mongodb mule

是否可以在通过Mule中的MongoDB云连接器执行的更新中使用更新运算符(例如$ set)?我想执行update-objects-using-map操作,将字段添加到匹配的对象中,这些对象已存在于我的集合中。 目前,它正在用我想要添加的字段替换所有现有字段。我需要添加$ set运算符来完成我想要的。

以下是配置示例:

<mongo:update-objects-using-map config-ref="Mongo_DB"    doc:name="Mongo DB"   database="myDatabase" password="myPassword" username="myUser" collection="test_SalesInvoice"   multi="false" upsert="true">
    <mongo:query-attributes>
        <mongo:query-attribute key="Invoice">#[payload.Invoice]</mongo:query-attribute>
    </mongo:query-attributes>
    <mongo:element-attributes >
        <mongo:element-attribute key="Worked">yes</mongo:element-attribute>
    </mongo:element-attributes>
</mongo:update-objects-using-map>

谢谢!

贾斯汀

1 个答案:

答案 0 :(得分:0)

<mongo:update-objects-by-function-using-map collection="yourCollection" 
                                                    config-ref="MongoDatabase" doc:name="Update Object"
                                                    upsert="true" function="$set">
            <mongo:query-attributes>
                <mongo:query-attribute key="id">#[payload.id]</mongo:query-attribute>
            </mongo:query-attributes>
            <mongo:element-attributes>
               <mongo:element-attribute key="newField">#[payload.newFieldValue]</mongo:element-attribute></mongo:element-attributes>
        </mongo:update-objects-by-function-using-map>

id  : is the attribute that will match with the original object to be update
newField : its the name of the new attribute that u want to add to u object on mongodb