Thanks Pasquale for this one. I will definitely try this one

On Thu, Apr 30, 2020 at 3:43 AM Pasquale Congiusti <
[email protected]> wrote:

> A note for Reji,
> as you probably will use the body coming from some source as an input you
> may wish to use the convert method instead of setting the body with the
> proper type:
>
> .convertBodyTo(ObjectId.class)
>
> I've just updated the documentation highlighting that.
>
> Cheers,
> Pasquale.
>
> On Thu, Apr 30, 2020 at 9:13 AM Pasquale Congiusti <
> [email protected]> wrote:
>
> > Yeah, probably we can add a note to warn the users that default _id is
> > treated as an ObjectId type by Mongo, I'll take care of that shortly.
> >
> > I've also planned to write a camel-example based on Mongo, as soon as
> it's
> > ready I'll raise a PR as well.
> >
> > Cheers,
> > Pasquale.
> >
> > On Wed, Apr 29, 2020 at 3:05 PM Claus Ibsen <[email protected]>
> wrote:
> >
> >> Hi
> >>
> >> Nice one Pasquale. I wonder if the docs are highlighting this? Maybe
> >> we can add this as an example.
> >> PR is welcome, we love contributions.
> >>
> >> You can do this in the adoc file in src/main/docs of the component.
> >> You can find that on github
> >>
> >> On Wed, Apr 29, 2020 at 9:35 AM Pasquale Congiusti
> >> <[email protected]> wrote:
> >> >
> >> > Hi Reji,
> >> > actually you're providing a String type to your body, and Mongo does
> not
> >> > treat the "_id" field as a String but as an ObjectId type.
> >> >
> >> > Please, change your setBody method to:
> >> >
> >> > .setBody(constant(new ObjectId("5ea1c4ae0911be2db0008909")))
> >> >
> >> > and everything should work as expected.
> >> >
> >> > Cheers,
> >> > Pasquale.
> >> >
> >> > On Mon, Apr 27, 2020 at 4:07 PM Reji Mathews <[email protected]
> >
> >> > wrote:
> >> >
> >> > > Hello Camel Community
> >> > >
> >> > > I am trying to use camel to query records based on mongo id with
> >> operation
> >> > > "findById". Following is the route snippet
> >> > >
> >> > > public void configure() throws Exception {
> >> > >     from("jetty:http://0.0.0.0:8081/mongo?httpMethodRestrict=GET";)
> >> > >             .setBody(constant("5ea1c4ae0911be2db0008909"))
> >> > >
> >> > >
> >>
> .to("mongodb:mongoClient?database=connectortesting&operation=findById&collection=requests")
> >> > >             .log("Mongo response ${body}")
> >> > >             .end();
> >> > > }
> >> > >
> >> > > I have following records in my test db
> >> > >
> >> > > > db.requests.find({});
> >> > > { "_id" : ObjectId("5ea1c4ae0911be2db0008909"), "name" : "mark",
> >> "age" :
> >> > > 40, "address" : "toronto, canada", "work" : { "company" :
> "mycompany",
> >> > > "company_phone" : "+1437447xxxx" } }
> >> > > { "_id" : ObjectId("5ea1f4df5e8c086e869250e3"), "name" : "mark",
> >> "age" :
> >> > > 43, "address" : "toronto, canada", "work" : { "company" : "
> mycompany
> >> ",
> >> > > "company_phone" : "+143744xxxxx" } }
> >> > > { "_id" : ObjectId("5ea1f4f05e8c086e869250e4"), "name" : "hima",
> >> "age" :
> >> > > 65, "address" : "toronto, canada", "work" : { "company" : "
> mycompany
> >> ",
> >> > > "company_phone" : "+143744xxxxx" } }
> >> > > { "_id" : ObjectId("5ea1f4f75e8c086e869250e5"), "name" : "paul",
> >> "age" :
> >> > > 45, "address" : "toronto, canada", "work" : { "company" : "
> mycompany
> >> ",
> >> > > "company_phone" : "+1437xxxxxxxx" } }
> >> > > { "_id" : ObjectId("5ea1f4fd5e8c086e869250e6"), "name" : "tim",
> "age"
> >> :
> >> > > 34, "address" : "toronto, canada", "work" : { "company" : "
> mycompany
> >> ",
> >> > > "company_phone" : "+143744xxxxxx" } }
> >> > >
> >> > > I was expecting mongodb component to return 1st record where mongoId
> >> > > matches "_id" but I get an empty result set. Am I doing something
> >> different
> >> > > than expected here?
> >> > >
> >> > > MongoDB documentation says "This operation retrieves only one
> element
> >> from
> >> > > the collection whose _id field matches the content of the IN message
> >> body"
> >> > > . Hence ideally, this should return first record
> >> > >
> >> > > PS:  I am using camel version 2.24.0
> >> > >
> >> > > Cheers
> >> > >
> >> > >
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> http://davsclaus.com @davsclaus
> >> Camel in Action 2: https://www.manning.com/ibsen2
> >>
> >
>

Reply via email to