首页 > 解决方案 > 如何使用 Apache Camel 从两个集合中获取请求的数据

问题描述

我是apache骆驼的新手。我在 apache camel 中使用 mongo 组件。因为我有两个集合(集合 1 和集合 2),在我在集合 1 中发布数据之前,我需要从集合 2 中获取数量。通过结合collection1 request 和collection2,文档应该被创建。我已经完成了单个收藏,但我正在为两个收藏而苦苦挣扎。请指导某人解决此问题。下面是它的源代码,

rest().post("/createcollection1")
    .route()
    .log("${body}")
    .to("mongodb:myMongo?database=practice&collection=collection1&operation=insert");

示例响应:

     {
        "_id" : "id",
        "item" : "item",
        "cost" : 45,
        "status" : "available",
        "qty": 50
     }

标签: mongodbspring-bootapache-camelspring-camel

解决方案


您实际上需要一个内容丰富器 (EIP)。

解决这个问题的一种方法...

之前.to,您可以声明:

.enrich("mongodb//<query-collection2>", new AggregationStrategy())

然后在聚合策略中,您从搜索结果(新交换)中提取您想要的任何内容,并将其聚合到贯穿消息(当前交换)。

这个文档肯定会帮助你:内容丰富

提示:了解企业集成模式对于正确使用 Camel 至关重要。


推荐阅读