I am new to MongoDB and I want to know the feasibility of my idea.
I want to make an offline-first, time-series database which keep the new data generated by a robot locally (ubuntu) and add the data to cloud DB, where the cloud DB is going to be the main source of information for all users.
Since I am using ROS2 for my robot, and it supports C++ and Python, I am thinking of using C++ to manage my database, although the C++ sdk is also very new.
Because it seems like the concept of Time Series Collection is still quite new in MongoDB, is my idea feasible?
Also, I will appreciate if there is any material that i can refer to or any other suggestions to make this work.
Yes, with realm sync you can use “data ingest” (see https://www.mongodb.com/docs/atlas/app-services/sync/configure/sync-settings/#std-label-optimize-data-ingest) which will allow you to execute write-only operations to a collection, including time-series collections. The C++ SDK now supports this feature as well.
Here’s a code example in this commit for both data streamed/ingested to Atlas and then data which is synchronized to and from Atlas.
Although most of the operations needed are write operations, i might need to occationally read the data through the robot. Does Data Ingest still fit my use case?
Data Ingest objects cannot be queried - for your use case you could consider mixing of Data Ingest and “normal” Realm Objects or possibly copying the Data Ingest objects to a local only Realm.