title: util.inspect/JSON.stringify doesn't work on arrays in objects
body: <p>I am retrieving documents from a mongodb using various comands, find, findones, findoneandupdates, etc. Most of these will return the entire document saved, which i do want. When doing find or findOne mongoose allows for the use of population. I am trying to pass back the entire object that was passed to me or view the whole object but the arrays are coming out wrong. i can still access the values manually but i want the string equivalent of the entire object. I have tried JSON.stringify and util.inspect(). might anyone have a solution to this? I've seen some old posts that address this. I will post my model as well helpful suggestions on changes would be appreciated if the problem is how i am storing the information. </p>
  
  <p>models: first product, second machine: </p>
  
  <pre><code>var productSchema = new Schema({
      productName: String,
      produtDesc: String,
      author: String,
      lastUpdate: { type: Date, default: Date.now },
      minimum: { type: Schema.Types.ObjectId, ref: 'Machine' },
      recommended: { type: Schema.Types.ObjectId, ref: 'Machine' }
  });
  
  var machineSchema = new Schema({
      cpu: {
          speed: String,
          mfg: [String],
          family: [String],
          cores: Number,
          architecture: String
      },  
      memory: {
          total: Number,
          free: Number
      },
      storage: [ {
          drive: String,
          total: Number, 
          free: Number
      } ],
      os: {
          family: String,
          version: String,
          uptime: Number
      },
      screen: {
          height: Number,
          width: Number
      },
      browser: {
          family: String,
          version: String
      },
      network: [ {
          name: String, 
          speed: Number,
          addresses: [ {
              address: String,
              type: String,
              internal: Boolean
          } ]
      } ],
      software: {
          ".net": [String],
          java: [String],
          acrobat: String
      }
  }); 
  </code></pre>
  
  <p>output code: </p>
  
  <pre><code>result.populate('recommended')
      .populate('minimum')
      .exec( function(err, done) {
          console.log(util.inspect(done,
              { showHidden: false, depth: 10 }));
          console.log(done.recommended.network[0]);
          reply(util.inspect(done,
              { showHidden: false, depth: null }));
      }); 
  </code></pre>
  
  <p>sample output: first util.inspect, second JSON.stringify </p>
  
  <pre><code>// util.inspect
  { _id: 553dc1d60062ee501b88535d,
      recommended:
      { _id: 553dc1d60062ee501b88535b,
       __v: 0,
       software: { acrobat: '9.0', java: [Object], '': [Object] },
        network: [ [Object] ],
        browser: { version: '9', family: 'Internet Explorer' },
        screen: { width: 1920, height: 1080 },
       os: { version: '6.1', family: 'Windows_NT' },
       storage: [],
       memory: { total: 3072 },
       cpu: { cores: 4, speed: '2800', family: [Object], mfg: [Object] } },
       minimum:
       { _id: 553dc1d60062ee501b885359,
       __v: 0,
       software: { acrobat: '9.0', java: [Object], '': [Object] },
       network: [ [Object] ],
       browser: { version: '9', family: 'Internet Explorer' },
       screen: { width: 1024, height: 768 },
       os: { version: '6.0', family: 'Windows_NT' },
       storage: [],
       memory: { total: 2048 },
       cpu: { cores: 2, speed: '2666', family: [], mfg: [Object] } },
       productName: 'Product Name',
       author: 'chris.lohl',
      __v: 0,
       lastUpdate: Fri Apr 17 2015 07:01:37 GMT-0700 (US Mountain Standard Time) 
  
       }
  
  // JSON.stringify
  '{"_id":"553dc1d60062ee501b88535d","recommended":{"_id":"553dc1d60062ee501b88535b","__v":0,"software":{"acrobat":"9.0","java":     ["1.6.0.24"],"":{"net":["2.0","3.5"]}},"network":  [{"name":"ethernet","speed":1000,"_id":"553dc1d60062ee501b88535c","addresses":["[object Object]","[object Object]"]}],"browser": {"version":"9","family":"Internet Explorer"},"screen":  {"width":1920,"height":1080},"os":{"version":"6.1","family":"Windows_NT"},"storage":[],"memory":{"total":3072},"cpu":{"cores":4,"speed":"2800","family":["i3","i5","i7"],"mfg":["intel"]}},"minimum":{"_id":"553dc1d60062ee501b885359","__v":0,"software":{"acrobat":"9.0","java":["1.6.0.2
  4"],"":{"net":["2.0","3.5"]}},"network":[{"name":"ethernet","speed":1000,"_id":"
  553dc1d60062ee501b88535a","addresses":["[object Object]","[object Object]"]}],"b
  rowser":{"version":"9","family":"Internet Explorer"},"screen":{"width":1024,"hei
  ght":768},"os":{"version":"6.0","family":"Windows_NT"},"storage":[],"memory":{"t
  otal":2048},"cpu":{"cores":2,"speed":"2666","family":[],"mfg":["intel","amd"]}},
  "productName":"Product Name","author":"chris.lohl","__v":0,"lastUpdate":"2015-04
  -17T14:01:37.000Z"}'
  </code></pre>