Thanks for the Help, so far we are trying to aviod converting the protobuf to JSON/BSON and then convert back. That might cause performance issue.
It would be great if we can convert directly. Thank you very much. On Thursday, September 6, 2018 at 2:22:16 PM UTC-4, Adam Cozzette wrote: > > There is some documentation and examples here > <https://developers.google.com/protocol-buffers/docs/javatutorial> showing > the basics of how to parse and serialize protos in Java. Ilia is right that > doing this and using the official protobuf binary format would be the most > reliable way to go. > > However, it sounds like you want to be able to make MongoDB queries > referencing fields in your proto. In that case, storing serialized protos > will not work, because from what I understand MongoDB will just see them as > opaque binary blobs. If you need to query based on proto fields then I > believe you would need to convert the proto into BSON before storing it. > Probably the easiest way to do that would be to first convert to JSON using > JsonFormat > <https://github.com/protocolbuffers/protobuf/blob/master/java/util/src/main/java/com/google/protobuf/util/JsonFormat.java> > and > then presumably it's straightforward to go from JSON to BSON. I don't have > any experience doing this, though, so I can't say for sure how well it will > work. It might also be feasible to use the reflection API to serialize and > parse directly to and from BSON. Making protos queryable in MongoDB is not > a use case we have really thought about much, though. > > On Thu, Sep 6, 2018 at 10:56 AM Chris Zhang <[email protected] > <javascript:>> wrote: > >> Sure, but do you know which util is best for convert the stored protobuf >> data back to Java Object? >> >> On Thursday, September 6, 2018 at 1:39:12 PM UTC-4, Ilia Mirkin wrote: >>> >>> Why not just store the serialized data of the protobuf instead? That's >>> kind of the whole point of protobuf... >>> >>> On Thu, Sep 6, 2018 at 1:27 PM, Chris Zhang <[email protected]> wrote: >>> > Hi Adam, >>> > >>> > Thanks for the response. >>> > >>> > We are trying to persist the protobuf generated java object into >>> mongoDB >>> > using Spring framework. >>> > However, when doing the querying from database, the spring framework >>> does >>> > not support any field name with underscore. >>> > >>> > Is there anyway we can work around? >>> > >>> > Thanks. >>> > >>> > >>> > On Thursday, September 6, 2018 at 1:05:38 PM UTC-4, Adam Cozzette >>> wrote: >>> >> >>> >> There is no way to remove the underscores without changing protoc. >>> But why >>> >> do you want to get rid of the underscores anyway? Those variables are >>> just a >>> >> private implementation detail and make no difference to the public >>> API. >>> >> >>> >> On Wed, Sep 5, 2018 at 1:07 PM Chris Zhang <[email protected]> >>> wrote: >>> >>> >>> >>> Hi, >>> >>> >>> >>> I am new to Protobuf, and recently I found out that the java >>> generated >>> >>> code by protobuf has underscore by the end of each field names. >>> >>> >>> >>> For example, >>> >>> >>> >>> protobuf message file look like this: >>> >>> >>> >>> message DummyMessage [ >>> >>> >>> >>> string some_id = 1; >>> >>> bool is_active = 2; >>> >>> } >>> >>> >>> >>> The generated java code is like this: >>> >>> >>> >>> Class DummyMessage { >>> >>> >>> >>> String someId_; >>> >>> boolean isActive_; >>> >>> >>> >>> } >>> >>> >>> >>> Is there any way to get rid of the underscore of each field? >>> >>> >>> >>> Thanks, >>> >>> >>> >>> >>> >>> -- >>> >>> You received this message because you are subscribed to the Google >>> Groups >>> >>> "Protocol Buffers" group. >>> >>> To unsubscribe from this group and stop receiving emails from it, >>> send an >>> >>> email to [email protected]. >>> >>> To post to this group, send email to [email protected]. >>> >>> Visit this group at https://groups.google.com/group/protobuf. >>> >>> For more options, visit https://groups.google.com/d/optout. >>> > >>> > -- >>> > You received this message because you are subscribed to the Google >>> Groups >>> > "Protocol Buffers" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> an >>> > email to [email protected]. >>> > To post to this group, send email to [email protected]. >>> > Visit this group at https://groups.google.com/group/protobuf. >>> > For more options, visit https://groups.google.com/d/optout. >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Protocol Buffers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at https://groups.google.com/group/protobuf. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
