无法从Apache Camel MongoDb组件检索多个对象
我有以下代码摘录:无法从Apache Camel MongoDb组件检索多个对象,mongodb,apache-camel,Mongodb,Apache Camel,我有以下代码摘录: @Component public class RetrievalAllFromDbRoute extends RouteBuilder{ public void configure() throws Exception { this.from("direct:allObjects").routeId("retrieveAllObjectsFromDB") .setHeader("CamelMongoDbBatchSiz
@Component
public class RetrievalAllFromDbRoute extends RouteBuilder{
public void configure() throws Exception {
this.from("direct:allObjects").routeId("retrieveAllObjectsFromDB")
.setHeader("CamelMongoDbBatchSize", constant(50))
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
DBObject fieldFilter = BasicDBObjectBuilder.start().add("_id", 1).get();
exchange.getMessage().setHeader(MongoDbConstants.FIELDS_FILTER, fieldFilter);
}
})
.to("mongodb:mongoClient?database="+mongoDbName +"&collection=myObjectCollection&operation=findAll&outputType=DBCursor")
.split(body())
.streaming()
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
JsonNode idNode = UtilMethods.convertStringToJson(exchange.getMessage().getBody().toString());
exchange.getMessage().setBody(idNode.get("_id").asText());
System.out.println("\n Extracted id["+exchange.getMessage().getBody().toString()+"] from db \n");
}
});
}
}
然而,我只得到一个输出。
在第一个处理器中设置断点并查询数据库会发现数据库中有300多个对象,所以我不明白为什么我只得到1个对象
编辑:我的maven POM依赖项:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-mongodb</artifactId>
<version>2.22.0</version>
</dependency>
org.apache.camel
骆驼mongodb
2.22.0
使用MongoDB 3.6数据库奇怪的是,这应该可以根据需要工作。您能否确认,您使用的是
camel-mongo
组件,而不是camel-mongodb3
组件?您正在使用哪个版本的Camel和组件?@Bedla我正在使用2.22.0 maven插件中的Camel mongodb
组件。不过,我现在切换到camel-mongodb3
版本,看看这是否会有所不同,因为在迁移过程中,底层数据库是mongo3.6,请记住这一点。Source@Bedla没有任何变化。iterable仍然只返回一个文档