代码之家  ›  专栏  ›  技术社区  ›  Dark Star1

无法从Apache Camel MongoDb组件检索多个对象

  •  2
  • Dark Star1  · 技术社区  · 6 年前

    我有以下代码摘录:

    @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多个对象,所以我不明白为什么我只得到一个对象。

    编辑 :
    我的maven POM依赖项:

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-mongodb</artifactId>
        <version>2.22.0</version>
    </dependency>
    

    使用MongoDB 3.6数据库

    0 回复  |  直到 6 年前