title: Insert document loop - RangeError: Maximum call stack size exceeded
body: <p>I am literally giving my first steps with node and mongodb and I have recently hit this RangeError wall.</p>
  
  <p>Here's what I am trying to do, I have a file that contains a list of countries that I would like to add to my mongo db. This would be part of my "seed" mechanism to get the app running.</p>
  
  <p>I load the json and then I iterate through the collection of objects and add them one by one to the 'Countries' collection.
  However, everytime I run the code, I get a "<strong>RangeError: Maximum call stack size exceeded</strong>".</p>
  
  <p>I have googled around but none of the suggested solutions seem to apply for me. 
  My guess is there is something wrong with my insertCountry function...</p>
  
  <p>Anyways, here's my code:</p>
  
  <pre><code>var mongoose = require('mongoose');
  var countries = require('./seed/countries.json');
  
  
  // mongodb
  var Country = mongoose.Schema({
      name: String,
      code: String,
      extra: [Extra]
  });
  
  var Extra = mongoose.Schema({
      exampleField: Boolean,
      anotherField: Boolean
  });
  
  
  var mCountry = mongoose.model('Countries', Country);
  var mExtra = mongoose.model('Extras', Extra);
  
  // do connection
  mongoose.connect('...');
  
  var db = mongoose.connection;
  db.on('error', console.error.bind(console, 'connection error'));
  db.once('open', function callback() {
  
  });
  
  
  // async function
  var insertCountry = function(document, callback) {
  
      db.model('Countries').count({code: document.code}, function (err, count) {
          if (count &lt; 1) {
              db.collection('Countries').insert(document, function (err, result) {
                  if (!err) {
                      console.log('country ' + document.name + ' added');
                  }
                  else {
                      console.log('- [' + document.name + '] ' + err);
                  }
              });
          }
          callback(null,document);
      });
  };
  
  
  // doing countries
  var Country = mongoose.model('Countries');
  var Extras = mongoose.model('Extras');
  
  
  for(i = 0; i &lt; countries.length; i++) 
  {
  
      nCountry = new Country();
      nCountry.name = countries[i].name;
      nCountry.code = countries[i].code;
      nCountry.benefits = new Extras();
      nCountry.benefits.exampleField = false;
      nCountry.benefits.anotherField = false;
  
      insertCountry(nCountry, function (err, value) {
          console.log(value.name + ' added to collection (callback)');
      });
  }
  </code></pre>
  
  <p>I have been using some guides I have found to build this so this might not be optimal code. Any best pratices, standards, guides or tutorials you can share are most welcome!</p>