【发布时间】:2014-07-03 19:14:33
【问题描述】:
是否可以在通过 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>
谢谢!
贾斯汀
【问题讨论】:
-
这里github.com/mulesoft/mongo-connector/blob/… 对$set 进行了更新测试,看来您需要将“$set”作为更新对象传递,您将新字段作为顶级对象传递。这是 $set github.com/mulesoft/mongo-connector/blob/… 的 xml 语法示例
-
查看示例和测试,看来您需要将其传递给
$set作为更新的顶级元素: 似乎还有一个 update-objects-by-function-using-map 函数为yes $set: 没有测试环境所以无法告诉您哪一种适合您。 -
啊,看来 update-objects-by-function-using-map 可以解决问题!我会做一些更广泛的测试,然后在这里更新。谢谢!
-
感谢您的回复!初步测试表明 update-objects-by-function-using-map (如此处所建议的)确实是答案,希望这对遇到此问题的其他人有所帮助。但是,我的团队改变了方向,完全追求不同的解决方案,所以我没有更严格地测试这个解决方案。