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 (explicit solution with explanations may come later on my John Codes Stuff blog on Blogspot. Maybe.)
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:
Start a new terminal and enter the command $ learnyoumongo
Select exercise 1 and hit enter
If you have already done exercise one before, this time just enter $ learnyoumongo verify and hit enter
Enter the command $ learnyoumongo
Select exercise 2 and hit enter
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
- 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.
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.