Meteor.js mongodb version - mongodb

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.

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.

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 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.

MongoDB: Upgrade 2.4.10 to 2.6

I have a mongodb standalone instance in my ubuntu. According to official docs I replace mongod binary then I restarted mongodb using sudo service mongodb restart command, and restarted mongod binary also. Then when I check version using mongo --version. It's still 2.4.10. But when I check mongod version it's 2.6.1. Is it okay? I installed mongodb in my local machine using this guide. If it correct then I will upgrade my production server.
It sounds like you have upgraded your mongod server to 2.6.1 but still have an older version of the mongo shell in your path.
Technically that isn't a major issue for most usage as the older 2.4 shell can still connect and run common commands.
However, there are 2.6-specific shell helpers & features you'll be missing out on such as Bulk() operations and user management commands with user-defined roles.
If you have an open mongo shell, you can check the versions of both the mongo client and the mongod server you are connected to.
Ideally the major versions should match, eg:
> version() // Version of the `mongo` shell
2.6.1
> db.version() // Version of the `mongod` server this shell has connected to
2.6.1
The upgrade guide you have followed is assuming you are not using the packaged versions of MongoDB -- the guidance here could definitely be improved.
A better (and typical) approach for Ubuntu is to install MongoDB using the standard packages: Install MongoDB on Ubuntu. This would allow you to get software updates via the normal apt-get update process.
Yes. It's okay. The 2.6.1 version is a small update with bugfixes after version 2.6. But it's still the same major version.

How do I update the mongodb binaries in my nitrous.io box to the 2.4.x versions?

I am taking the "mongodb for node.js" course and trying to import/restore data to my mongolab instance but I keep getting Auth err code 18 errors.
I can connect to any instance I create using the mongo --shell from the nitrous.io box and it works fine. So my connect string and env variables are correct. If I change the password when logging in to mongo shell it actually gives me the opportunity to put in the correct password. So I know the user authentication is proper.
I am confused as to why I still get Auth err code 18 errors when I try to use the supplied mongodump files.
I have also tried specifying individual .bson files and that gives the same error as well.
I am connecting to mongod version 2.4.6 but mongorestore is only 2.0.4 on the nitrous.io box. I wanted to update to the newer version and see if this is the problem. I have read other posts from other sites where this seemd to break in version 2.2.2. while importing using older versions of the binaries for restore.
it does not appear you(nitrous.io developers) leave a way to update or support mongodb versioning. Do you have a way I could update to mongodb v2.4.6?
also if you could add htop and bmon to your image that would be nice.
Nitrous has released a package manager dubbed autoparts which will allow you to install mongodb 2.4.6.
Autoparts requires you to have a Nitrous box on version "bran" or later. If you are on version "arya" then you will need to download the contents within your box (SCP or Nitrous Mac App), terminate the box, followed by creating a new box in order to upgrade.
Take a look at the README within the Github Repo for instructions on how to use autoparts:
https://github.com/action-io/autoparts
To install/update mongodb to the latest version, run the following command:
parts install mongodb
After the installation completes, run mongo in the console to check the version. You may need to restart the console if it is reporting an older version.