我正在使用Spring Integration开展项目。在消息流中的某个时刻,我使用MongoDB Outbound Channel Adapter将有效负载保存到我的mongodb数据库中。
有没有办法可以在插入文件时立即获取文件的ID?基本上,在插入文档之后,我需要将其id传递到另一个通道以进行进一步处理。利用Spring Integration基础架构实现这一目标的最佳方法是什么?
答案 0 :(得分:3)
来自MongoTemplate.insert(Object):
如果你的对象有一个“Id”属性,它将使用MongoDB生成的Id设置。如果你的Id属性是一个String,那么MongoDB ObjectId将用于填充该字符串。否则,从ObjectId到你的转换属性类型将由Spring的BeanWrapper类处理,该类利用Type Conversion API。有关更多详细信息,请参阅Spring的类型转换。
答案 1 :(得分:1)
你可以尝试:
BasicDBObject doc = new BasicDBObject("foo", "bar");
collection.insert(doc);
ObjectId id = (ObjectId)doc.get("_id");