What mongodb version can I use with mongoid 2? - mongodb

I'm currently working in a pretty old project. The current mongodb version is 2.6.x and I am locked with mongoid 2.x with the moped driver. Our database is in serious pain and I suspect it is time for an upgrade but I'm not sure about what database version I can use with the old mongoid driver.
Mongoid is such a hassle to upgrade with all the breaking changes and the rails version dependency I can only upgrade to version 3. If I do all the work of upgrading mongoid I would have liked it to be to a more recent version.
How can I find which database versions the old mongoid 2.x driver supports?

you have to be more specific about the version you use. even minor versions require different MongoDB versions. check this changelog.

Related

Compatility of older driver versions against newer mongodb server

We have multiple applications using mongodb as database. In our current case our applications are using the mongo driver 3.4.
On the server side currently we are running with Mongo 3.4 but we would like to keep the Mongo version up to date as long as possible.
I know that mongo drivers provide such level of backward compatibility, but I don't know whether an old version of mongo driver can work without any problem with a newer version of a mongo server.
Can mongo driver 3.4 work with 3.6 server without any problem?
Officially supported drivers provide a form of backward compatibility.
That is, newer drivers should be compatible with older server versions, but thorough testing of the application to double-check is always strongly recommended.
Note that the opposite is not always true, e.g. newer servers may be compatible with older drivers, but there is no guarantee. This is especially true if you apply setFeatureCompatibilityVersion command after a server upgrade.
The page Driver Compatibility in the documentation should be up-to-date with driver versions vs. server versions. You might be able to refer to this page in the future.
As of December 2021, the driver compatibility pages containing compatibility matrices for Python can be found at:
PyMongo: https://docs.mongodb.com/drivers/pymongo/#mongodb-compatibility
Motor: https://docs.mongodb.com/drivers/motor/#mongodb-compatibility

Copy database from host with MongoDB 2.4 to host with MongoDB 3.0 via ssh tunnel

I trying to migrate an old application, using MongoDB 2.4 to a host, running MongoDB 3.0 in Docker container. For test purpose I am copying the data via ssh tunnel from the older to the newer version.
As I read about the updating process of MongoDB, first I should use Mongo 2.6 and then 3.0. However my test with avoiding the step with version 2.6 was successful and the database works fine. Could somebody explain me is that really possible or I have misunderstood something? It's really strange for me.
Upgrading from 2.4 to 2.6, prior to upgrading to 3.0 is a requirement according to the documentation:
To upgrade an existing MongoDB deployment to 3.0, you must be running
2.6. If you’re running a version of MongoDB before 2.6, you must upgrade to 2.6 before upgrading to 3.0. See Upgrade to 2.6 for the
procedure to upgrade from 2.4 to 2.6. Once upgraded to MongoDB 2.6,
you cannot downgrade to any version earlier than MongoDB 2.4.
Having said that, if you have run the corresponding test cases for your application, with a good test coverage, the indexes are working properly, and nothing has been broken I can not see a reason to worry about but ideally they suggest to migrate to 2.6 and then make the move to 3.0 to avoid data corruption.

For parse migration, does mongodb have to be 3.2.6 or is 3.2.* ok?

Why is 3.0.* ok but 3.2 version has to specifically be 3.2.6? Is 3.2.1 ok?
Any version is fine when doing a fresh install with parse-server but from parse.com you will not be able to move to 3.2. Seems that migration tool wont allow it.
I moved to 3.0 and from there did backup/restore to 3.2.
However i would always strongly suggest that one in general runs the latest version if you can.
I do know that all test on mongodb 3.2.6 are passing including geo queries.

Does meteor update mongodb version automatically?

I have Meteor 1.2.2 installed and, according to MeteorBlog, it should comes Mongodb v3.0 or higher installed.
However, if a go on Mongo shell (meteor mongo) and do:
$ db.version()
I get: 2.6.7
Shouldn't it be 3.0? I tried meteor update and it says all packages are up to date.
Is there a way to update Mongodb to the latest version as accepted by Meteor?
Meteor 1.1 came with MongoDB support up to version 3 and you're supposed to be able to use Meteor in production along a MongoDB 3.0 database without major problems.
However they decided to keep the 2.6 branch regarding the Mongo version shipped with the Meteor tool and wait until Mongo 3.0 is mature enough before including it along official Meteor releases.
It means that Meteor updates its internal tool MongoDB version automatically, but at their own pace.
The local Mongo environment shipped with the Meteor development tool is something different than the actual Mongo deployment you usually use in production, and it is not required that the 2 versions be the same.

Meteor.js mongodb version

This may be a dumb question, but I am confused about something. I have downloaded mongodb 2.6.4(latest) version to my mac, and deleted old mongodb folder which had executables and other stuff. But whenever I execute 'meteor mongo' command from my meteor.js application, it is opening MongoDB shell version 2.4.9, not the latest one. Why is this happening? Where is this old version is coming from? How can I use the latest version in meteor.js application?
Thank you
Meteor 1.0.x supports both 2.6 and 3.0. It ships with 2.6 locally.
http://info.meteor.com/blog/meteor-104-mongo-cordova-template-subscriptions
Meteor includes its own version of mongodb as a part of its bundle when you ran curl https://install.meteor.com | sh
It does this so its not a hassle to install and they can bundle the correct supported versions with it.
Meteor doesn't yet officially support 2.6.4 on the account of some oplog differences, though you can get it to work without the oplog without any issues, and with the oplog with a couple of issues.