Thank you Claus, I went to https://github.com/apache/camel/blob/master/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbOperationsTest.java and simplified my codes but still got the same results. We had a project and I tried to convince to leverage Camel features. Any helps will be very appreciated.
Thank you, /* My Sample Codes */ from(fromKafka) .log("Starting...") .process("CreateDocumentList") .to("mongodb:mongoBean?database=databaseName&collection=collectionName&operation=insert") .log("I am done"); @Named("CreateDocumentList") public class CreateDocumentList implements Processor { public void process(Exchange exchange) { Document a = new Document(MongoDbConstants.MONGO_ID, "testInsert1"); a.append("MyId", 1).toJson(); Document b = new Document(MongoDbConstants.MONGO_ID, "testInsert2"); b.append("MyId", 2).toJson(); Document c = new Document(MongoDbConstants.MONGO_ID, "testInsert3"); c.append("MyId", 3).toJson(); ArrayList<Document> taxGroupList = new ArrayList<Document>(); taxGroupList.add(a); taxGroupList.add(b); taxGroupList.add(c); exchange.getIn().setBody(taxGroupList); } } Results: According to Camel MongoDb document, I expect to see 3 rows being inserted but I can only see one row. /* MongoDb document: https://camel.apache.org/components/latest/mongodb-component.html#_createupdate_operations */ For multiple insert, the endpoint will expect a List, Array or Collections of objects of any type, as long as they are - or can be converted to - Document. Example: from("direct:insert") .to("mongodb:myDb?database=flights&collection=tickets&operation=insert"); Results in MongoDb: { "_id" : "testInsert1", "MyId" : NumberInt(1) } On Saturday, October 3, 2020, 03:15:28 AM EDT, Claus Ibsen <claus.ib...@gmail.com> wrote: Hi It can be a good idea to look at the unit tests of the components as they often cover how a functionality may be used (if tested) or at least help you in the right direction. On Sat, Oct 3, 2020 at 12:14 AM Site Register <site.regis...@ymail.com.invalid> wrote: > > Hi All, > According to the document MongoDB :: Apache Camel , it supposes to batch > insert into mongodb. However I found it only inserted the first record of the > batch. I also added a process right before mongodb insert and the message > having a list of the document. Very appreciated if you can help. > Thank you, > > On Thursday, October 1, 2020, 08:22:23 AM EDT, Site Register ><site.regis...@ymail.com.invalid> wrote: > > Hi All, > It tried to batch insert by leveraging aggregate. Somehow it only inserted > one record for each batch. Very appreciated if you can help. > from(fromFile) > .split().tokenize("\n",1) > .aggregate(constant(true), new ArrayListAggregationStrategy()) > .completionSize(1000) > .completionTimeout(500) > >.to("mongodb:mongoBean?database=databaseName&collection=collectionName&operation=insert"); > > Thank you, -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2