Is data returned from Mongoose immutable?

mongodb, mongoose

Solution

One way to handle this is to convert your mongoose model instance into a plain object that you have full control over by calling `toObject()` on it:

User.findById(userId, function(err, data) {
  if (!err) {
    data = data.toObject();
    data.newvar = 'Hello, world';
  }
});

If you want a more structured solution, you can add virtual attributes to your schema as described here.

Problem

I want to add to the return data from a mongoose query: ``` User.findById(userId, function(err, data) { if (!err) { data.newvar = 'Hello, world'; } }); ``` However, when I console log the output, the newvar does not exist. I've also tried this using Underscore's extend: ``` _.extend(data, {'newvar': 'Hello, world'}); ``` With no luck either. Since I have nested documents, using a shallow copy won't work. Is there any way to append data here?

Original source

Related problems