 <p>I think what normally happens in the scenario where you want to change an employees manager would be:</p> <ul> <li>load the employee model. You may not need to populate the manager at this point if you just intend to change it without really using the existing manager value. Make sure you change it with <code>employee.manager = newManager</code> and not <code>employee.manager._id = newManagerId</code> otherwise I'm not sure mongoose will properly understand your change.</li> <li>change the manager on the in-memory model. However, just keep your reference to this instance available so you don't have to re-fetch it from the DB.</li> <li>save the employee with the new manager ID</li> <li>If you want to do more with the populated employee (send it to the browser or whatever), just use your existing reference from step 2 instead of refetching.</li> </ul>