Est-il possible d'utiliser des opérateurs de mise à jour (tels que $ set) dans les mises à jour effectuées via MongoDB Cloud Connector dans Mule? Je voudrais effectuer une opération update-objects-using-map pour ajouter un champ aux objets correspondants, qui existent déjà dans ma collection. Actuellement, il remplace tous les champs existants par le champ que j'essaie d'ajouter. Je dois ajouter l'opérateur $ set pour accomplir ce que je veux.Opérateurs de mise à jour dans Mule MongoDB Cloud Connector
Voici une configuration exemple:
<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>
Merci!
Justin
il y a un test pour $ mis à jour ici https://github.com/mulesoft/mongo-connector/blob/e0830c029d27f1b29e9a53fb852b5d0cba9e08c6/src/test/java/org/mule/module/ mongo/automation/testcases/UpdateObjectsUsingQueryMapTestCases.java # L60 il semble que vous ayez besoin de lui passer "$ set" comme objet de mise à jour, où vous passez le nouveau champ comme objet de premier niveau. Voici un exemple de syntaxe xml pour $ set https://github.com/mulesoft/mongo-connector/blob/fad5b5cf0c239f8f540b2ed9f455c079494be762/demo/src/main/app/mongo-demo.xml#L43 –
En regardant des exemples et des tests, il semble que vous ayez besoin de le passer '$ set' comme élément de niveau supérieur pour la mise à jour: oui mongo: attribut-élément> Il semble également y avoir une mise à jour-objets-par-fonction-utilisant-carte avec la fonction étant '$ set': Ne pas avoir d'environnement à tester donc ne peut pas tel l vous qui travaillerez pour vous. –
Ah, il semblerait que update-objects-by-function-using-map puisse faire l'affaire! Je vais faire des tests plus approfondis et ensuite mettre à jour ici. Je vous remercie! – jhildreth