2012-06-07 3 views
1

En utilisant le connecteur Mule MongoDB, comment stockez-vous un champ en tant que type BinData?Comment stocker un champ BinData en utilisant Mule MongoDB Connector?

<mongo:insert-object-from-map collection="#[variable:collectionName]"> 
     <mongo:element-attributes> 
      <mongo:element-attribute key="msg_id">BinData(3, '#[message:id]')</mongo:element-attribute> 
      <mongo:element-attribute key="shortcode">#[map-payload:shortcode]</mongo:element-attribute> 
      <mongo:element-attribute key="msg">#[map-payload:msg]</mongo:element-attribute> 
     </mongo:element-attributes> 
    </mongo:insert-object-from-map> 

Cet exemple ci-dessus que j'ai essayé juste stocke la chaîne "BinData (3, 'eea894d1-b0b5-11e1-91c7-a769a8d50370')"

Est-ce possible?

Répondre

0

J'ai effectivement abandonné le connecteur Mule MongoDB entièrement parce qu'il n'était pas fiable et a échoué sous une lourde charge. Cet article a expliqué pourquoi il a échoué si misérablement - http://www.thorntech.com/2012/07/mule-mongo-connector-fails-under-heavy-load/

Il était très facile d'écrire mon propre composant Mule qui utilisait le pilote java standard. Il a fonctionné beaucoup mieux et je n'ai eu aucun problème à sauvegarder tout type de données que je voulais.

0

Vous pourriez être en mesure d'utiliser Groovy pour créer l'objet

<mongo:element-attribute key="msg_id">#[groovy:new BinData(3, payload.getUniqueId())]</mongo:element-attribute> 

Cela ne fonctionnera probablement pas bien que le pilote MongoDB ne sera pas en mesure de convert the object, mais pourrait utiliser Groovy pour créer à la place un BasicDBObject to create the data that you store .

Questions connexes