The problem that I am facing is that BSON comes with ObjectId and Timestamp which are not supported in Messagepack and it aint possible to define a custom serializer for Messagepack (at least as far as I know).
I wrote a piece of python code to compare pymongo's BSON vs msgpack. With not much of optimization I could achieve 300% performance improvement.
So, is there any way to convert BSON to Messagepack?
BSON to Messagepack
1.2k Views Asked by Jermin Bazazian At
1
There are 1 best solutions below
Related Questions in BSON
- How to overcome the incompatibiliy of `b_null` with other types in the bsoncxx library?
- BSONError in MongoDB Compass
- BSON Error in Jetty Custom Configuration for persisting sessions in mongo
- Reading .bson file with Rust
- Executing MongoDB Aggregation Pipelines from a String in Node.js: Converting String to BSONDocument[]
- org.bson.BsonInvalidOperationException: Value expected to be of type INT64 is of unexpected type OBJECT_ID
- upload a file with FastAPI and save to MongoDB bson
- How can serilize Microsoft.EntityFrameworkCore.DbUpdateException with new MongoDB driver version 2.24.0?
- How to get a number array from MongoDB to Java class with POJO?
- Multiple Inner classes POJO - Mongo DB
- Mongo nested struct with omitempty
- Bson deserialization error of List with EFCore after application restart
- JWT for BSON (Binary JSON)
- How to generically avoid inserting the zero-id for MongoDB objects (using golang) etc
- compare jsonSchema def with a Go struct def - fail at app layer not db layer
Related Questions in MSGPACK
- Update msgpack when unpacking
- Installing msgpack as Apache module on Debian 11
- Unpacking Large Msgpack Dataset in Google Colab and Saving to SQLite3 Database - Memory Issues
- How to pack string into msgpack::object in C++?
- How to pack string in C++ msgpack?
- MessagePack: how to serialize without types information?
- How to serialize an Ext sequence in rmp_serde?
- Python error related to srsly.msgpack._unpacker.unpackb
- In Rust's pyO3, how do I represent a custom Python class that's implemented in Python, such that the pyo3 struct can check types?
- Deserialize MsgPack with anonymous list in C++
- MSBUILD : error MSB4166: Child node "2" exited prematurely. Shutting down. Diagnostic information may ... MSBuild_*.failure.txt
- How to enable compressed binary messaging in SignalR with Blazor WebAssembly with MessagePack
- how to run external libs functions inside iOS and Android in React Native?
- Where is the equivalent in Rust of the msgpack Timestamp class in Python
- Messagepack Serializer for C# also ok to use with VB.NET?
Related Questions in MESSAGEPACK
- Receiving a stream with msgpack in C
- MessagePack Perl to C++ deserialisation
- What's the Transport Protocol for MessagePack / Protocol Buffers?
- Unable to deserialize service response when using servicestack MsgPack client
- How do I write a serializer in C using MessagePack (Mpack)
- What is the difference between MessagePack, Protobuf and JSON ? Can anyone tell me which one to use when
- MessagePack: disable integer compression
- File byte error in kotlin. How to transfer correctly?
- MessagePack: is there a "grammar" for valid msgpack structures?
- Interoperability problems python2 python3
- Sending binary data over websocket with cowboy and MessagePack
- MessagePack Java serializing as array
- How to efficiently serialize primitive arrays with Message Pack?
- Why does the list force all new items to duplicate themselves?
- MessagePack RPC C# - Server side
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Here is how I solved the problem.
Unfortunately since mongodb none-REST API doesn't come with a Strict, or JS mode for document retrieval (as opposed to its REST API in which you could specify the format you wanna use to retrieve a document), we are left with no option but to do the conversion manually.
The awesome observation is that even with one extra step of json.dumps, Messagepack serializer is faster than BSON encode, not 3 times though. For 10000 repetition the difference is three tenth of a second.