Wednesday, December 21, 2016

Learnyoumongo (Mongo in C9) exercise 2 and 3 pitfalls for beginners

Sorry, no explicit solution here - I am writing for those who just need to get off the ground and are trying to understand exactly what is required of them for this tutorial.

It is important to realize that exercises one and two are not just their own exercises but the necessary steps leading up to getting everything running properly before you can even run your solution for exercise 3.

It took me a while to realize this (duh), so let me repeat the above information: Exercises one and two of the learnyoumongo tutorial get you connected and get the server running in the background. So you can't do exercise one day, two the next, then come back in a couple days, write your solution for three and expect it to run. After you have put together your solution for exercise three, you have to go back and repeat exercises one and two as the first steps of exercise three.

Before you do exercise 3:

1. Start a new terminal and enter the command $ learnyoumongo
2. Select exercise 1 and hit enter
3. If you have already done exercise one before, this time just enter $ learnyoumongo verify and hit enter
4. Enter the command $ learnyoumongo
5. Select exercise 2 and hit enter
6. When the directions say "To start mongo on port 27017, run mongod --port 27017 --dbpath=./data" don't do that. Do this:

    $ mongod --port 27017 --dbpath=./data --smallfiles

Otherwise you might get an error that you need to free up space

7. Open a second terminal and DO EVERYTHING ELSE IN THE SECOND TERMINAL, from "$ npm install mongodb" to "$ learnyoumongo verify [solution.js]" for exercise 2 to everything for exercise 3. Do it all in the second terminal with the db server running in the first terminal.

Side note:

If you are messing around trying to get stuff to work and get the "journal" or the "lock" error followed by the message that it failed to connect, do this:

    $ mongod --dbpaths=./data -- repair

...assuming you called your data file "data"

I still have not figured completely why that works, but it worked for me when I encountered CONNECTION errors.

No comments:

Post a Comment