title: Fail to add and delete fields in a json object
body: <p>Usually I would do this:</p>
  
  <pre><code>var res = {};
  res =   {   _id: 'test@tester.com',
              password: 'ABCDEF',
              phone: '123123123',
              name: 'Torben Tester',
              userLog: [ 
                  { date: 1510561026, text: 'was CREATED' },
                  { date: 1510593431, text: 'was UPDATED' }
              ] 
          }
  
  res.foo = "bar";
  delete res.password
  delete res.userLog
  </code></pre>
  
  <p>And I would end up with:</p>
  
  <pre><code>{   _id: 'test@tester.com',
      phone: '123123123',
      name: 'Torben Tester',
      foo: 'bar'
  }
  </code></pre>
  
  <p>But... if I get the record from MongoDB</p>
  
  <pre><code>usersTable.findOne (
      { _id: 'test@tester.com' }
  ,function (err, data) {
      res = data
  }
  </code></pre>
  
  <p>Then res is still the exactly the same as before</p>
  
  <p>But none of the modifications work</p>
  
  <pre><code>res.foo = "bar";
  delete res.password
  delete res.userLog
  </code></pre>
  
  <p>The do absolutely nothing. They dont return any errors and <code>res</code> remains the same before and after.  </p>
  
  <p>What am I missing?  Is there a chance that <code>res</code> is of a different type when it comes from mongodb?  (no its not an array, I checked that already)</p>
  
  <p>when doing <code>console.log(res)</code> the structure is exactly the same in both cases. </p>
  
  <p>Any ideas would be very helpful, completely stuck for hours on this one.</p>
  
  <p>Just to make it more clear....  This is the actual code...</p>
  
  <pre><code>usersTable.findOne (
      { _id: userID }
  ,function (err, data) {
  
      show("============BEFORE================")
      show({data})
      data.agentName = agentName + "XXXX";
      delete data.password
      delete data.userLog
      show("============AFTER================")
      show({data})
  
      return resolve(data);
  }   
  </code></pre>