1

使用 Mule MongoDB 连接器,如何将字段存储为 BinData 类型?

    <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>

我试过的上面这个例子只存储字符串“BinData(3,'eea894d1-b0b5-11e1-91c7-a769a8d50370')”

这可能吗?

4

2 回答 2

0

您也许可以使用 Groovy 创建对象

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

这可能不起作用,因为 MongoDB 驱动程序无法转换对象,但可以使用 Groovy 创建BasicDBObject 来创建您存储的数据

于 2013-01-28T11:26:56.897 回答
0

实际上,我完全放弃了 Mule MongoDB 连接器,因为它不可靠并且在重负载下失败。这篇文章解释了为什么它失败得如此悲惨 - http://www.thorntech.com/2012/07/mule-mongo-connector-fails-under-heavy-load/

编写我自己的使用标准 java 驱动程序的 Mule 组件非常容易。它的表现要好得多,我可以毫无问题地保存我想要的任何数据类型。

于 2013-01-28T12:02:23.267 回答