Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 获取新插入文档的id_Mongodb_Spring Integration_Spring Data Mongodb - Fatal编程技术网

Mongodb 获取新插入文档的id

Mongodb 获取新插入文档的id,mongodb,spring-integration,spring-data-mongodb,Mongodb,Spring Integration,Spring Data Mongodb,我正在和你一起做一个项目。在消息流中的某个时刻,我使用a将有效负载保存到mongodb数据库中 是否有一种方法可以在插入文档时立即获取文档的id?基本上,在插入文档之后,我需要将其id传递到另一个通道进行进一步处理。利用Spring集成基础架构实现这一目标的最佳方法是什么?您可以尝试: BasicDBObject doc = new BasicDBObject("foo", "bar"); collection.insert(doc); ObjectId id = (ObjectId)doc.g

我正在和你一起做一个项目。在消息流中的某个时刻,我使用a将有效负载保存到mongodb数据库中

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

您可以尝试:

BasicDBObject doc = new BasicDBObject("foo", "bar");
collection.insert(doc);
ObjectId id = (ObjectId)doc.get("_id");
发件人:

如果您的对象具有“Id”属性,将使用从MongoDB生成的Id进行设置。如果Id属性是字符串,则将使用MongoDB ObjectId填充该字符串。否则,从ObjectId到属性类型的转换将由Spring的BeanRapper类处理,该类利用类型转换API。有关更多详细信息,请参见Spring的“类型转换”


谢谢chridam。您展示的方法是使用mongo java驱动程序的java方式。但是,我一直在寻找一种使用Spring集成中的功能(如果有的话)的解决方案。尽管如此,我还是对您的答案投了赞成票,因为它部分解决了我的问题。谢谢sfat。您展示的方法是spring数据方式。但是,我一直在寻找使用spring集成中的功能(如果有)的解决方案。例如,(正如我在问题中提到的)我可以在不直接使用任何mongo java或spring数据API的情况下将有效负载保存到我的数据库中。如果我能找到类似的方法来获取插入的文档id,那就太好了。尽管如此,我还是对你的答案投了赞成票,因为它部分解决了我的问题。非常感谢。@Tanvir你看过这个家伙了吗?如果你愿意,这似乎是你想要的东西利用弹簧Integration@NeilLunn这不是一个重复的问题。这个问题特定于Spring集成,不适用于另一个线程关注的基于java的解决方案。请参阅我对所提供答案的评论,这些答案与链接问题的答案完全相同。这使它成为重复。