Does meteor update mongodb version automatically? - mongodb

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.

Related

Why does MongoDB advise on upgrading MongoDB incrementally, version-by-version?

Apologies if this question is too open-ended.
I have inherited an aging tech stack and am required to upgrade our 200GB MongoDB Community Edition v3.4 installation (hosted on Ubuntu 20) to MongoDB v5 in order to support some new features.
MongoDB advises that to install v5.0, one must be already on MongoDB v4.4:
https://www.mongodb.com/docs/manual/release-notes/5.0-upgrade-standalone/
They say that if you are on a version older than 4.4, then you need to incrementally upgrade to v4.4 before upgrading to v5.
However, if you follow the links in that official upgrade tutorial, you will find that in order to upgrade to any version of MongoDB, they insist on you upgrading version-by-version, successively.
So for me on v3.4 the upgrade path will look like this:
v3.4 -> v3.6 -> v4.0 -> v4.2 -> v4.4 -> v5.0.13
Following these tutorials:
https://www.mongodb.com/docs/manual/release-notes/3.6-upgrade-standalone/
https://www.mongodb.com/docs/manual/release-notes/4.0-upgrade-standalone/
https://www.mongodb.com/docs/manual/release-notes/4.2-upgrade-standalone/
https://www.mongodb.com/docs/manual/release-notes/4.4-upgrade-standalone/
https://www.mongodb.com/docs/manual/release-notes/5.0-upgrade-standalone/
I'm not entirely sure why this is necessary, as the tutorials themselves seem to mostly involve copying over newer binaries and then setting a feature compatibility version in the database config.
To test whether this was necessary I did a mongodump of our entire v3.4 database and then installed a standalone MongoDB v5.0.13 on the same server and then mongorestore to the new v5.0.13 database. Everything seems to work fine, mongorestore spent two hours recreating all the indexes as its last step (something various articles told me would not happen using the mongodump/mongorestore method).
I am able to connect Mongo clients to this new v5.0.13 Community instance without issue. All the data is there and I am able to query it just fine.
So my question is, why does MongoDB strongly advise doing the upgrade incrementally, one version at a time when dumping the database and restoring it to a new version of MongoDB seems to work just fine?
The only issues I have currently is having to rewrite some client code which is using an older Mongo Java driver. This is something I am going to have to do regardless of the upgrade method I used.
Our MongoDB instance is Community Edition and is a single, standalone instance (not a replica set) so I don't know if this matters. Perhaps the upgrade process described by MongoDB is for Mongo Cloud or for Enterprise?
I'm just looking for clarification on whether the simpler method I tried is going to cause me issues. Maybe I've missed something I hadn't considered.

Is using a newer Mongo shell version with an older MongoDB version safe?

I use MongoDB on multiple production servers, with different versions for different projects. My development environment has v3.6 of the shell but when I connect to a server with MongoDB v3.4, I am greeted with this message upon login:
WARNING: shell and server versions do not match
Is it unsafe to use a newer Mongo shell with an older DB version?
Has MongoDB provided any official answer/documentation regarding this?
Is it unsafe to use a newer Mongo shell with an older DB version?
The startup warning is about expectations rather than safety: ideally the major version (x.y) of your mongo shell and MongoDB deployment should be part of the same release series. Basic commands are generally backward-compatible (and will default to "legacy mode" where appropriate), but mismatched shell versions can definitely lead to unexpected or confusing results.
For example, the 3.6 mongo shell includes helpers for new MongoDB 3.6 features like sessions and retryable writes. If you connect to an older MongoDB server, use of helpers for newer features or options may not always result in an obvious error or warning.
Similarly, if you connect to a MongoDB 3.6 deployment using a 3.4 mongo shell you will be missing helpers for newer server features.
You can choose to ignore the version mismatch warning if you are confident the difference won't cause any issues for the commands you are using.
If you regularly need to connect to multiple MongoDB server versions (and use Linux or macOS), m (MongoDB version manager) is very handy for downloading and switching between multiple mongo versions.

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.

Does Meteor support Mongo 3.4.2?

in the meteor change log (http://docs.meteor.com/changelog.html), the latest place talk about the mongo version supported is in Meteor 1.4(http://docs.meteor.com/changelog.html#v1420160725), which announced a year ago, and the version of mongo supported is 3.2
I test 3.4.2 Mongo on my local machine, and it works, I want to know if the meteor 1.4.2.3 I used can work well with the latest stable mongo version 3.4.2(https://jira.mongodb.org/browse/SERVER?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel&subset=-1)?

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.