Johnny Johnny - 10 months ago 37
Node.js Question

MongoDB: output 'id' instead of '_id'

I am using mongoose (node), what is the best way to output id instead of _id?

Answer

I create a toClient() method on my models where I do this. It's also a good place to rename/remove other attributes you don't want to send to the client:

Schema.method('toClient', function() {
    var obj = this.toObject();

    //Rename fields
    obj.id = obj._id;
    delete obj._id;

    return obj;
});