获取新插入文档的ID

时间:2015-04-06 12:40:39

标签: mongodb spring-integration spring-data-mongodb

我正在使用Spring Integration开展项目。在消息流中的某个时刻,我使用MongoDB Outbound Channel Adapter将有效负载保存到我的mongodb数据库中。

有没有办法可以在插入文件时立即获取文件的ID?基本上,在插入文档之后,我需要将其id传递到另一个通道以进行进一步处理。利用Spring Integration基础架构实现这一目标的最佳方法是什么?

2 个答案:

答案 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");