mongodb - 如何使用 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
}
解决方案
您实际上需要一个内容丰富器 (EIP)。
解决这个问题的一种方法...
之前.to
,您可以声明:
.enrich("mongodb//<query-collection2>", new AggregationStrategy())
然后在聚合策略中,您从搜索结果(新交换)中提取您想要的任何内容,并将其聚合到贯穿消息(当前交换)。
这个文档肯定会帮助你:内容丰富
提示:了解企业集成模式对于正确使用 Camel 至关重要。
推荐阅读
- javascript - 需要帮助:如何在不刷新页面的情况下获得一个全新的 wasm 模块实例?
- javascript - 使用外部库构建 Vue 组件以在浏览器中使用
- javascript - window.addEventListener('load', function) 在 react(gatsby) 中不起作用
- c# - 扩展 XamlCompiler 以将字符串反序列化为集合
- google-app-engine - 实例停止时自定义 GAE 页面
- python - TF 1.x 中的代码可以读取使用 TF 2.x 编写的 tfrecords 文件吗?
- javascript - 尝试在活动时将菜单项文本更改为图标
- bash - Bash:将命令输出添加到现有数组
- mysql - SERIALIZED CONTEXT 数据截断问题 [SPRING BATCH]
- azure - Azure 认知搜索:停止空格以充当分隔符