Can't access object property of a Mongoose response

I suspect the value you are trying to get is not in your Schema but is stored in your database.

You have two solutions from there. You can either add entity_id to your Schema and Mongo will be able to bind it to the Document object you receive. This is the recommended way.

Or you can bypass mongoose Schema and access the raw document stored in the database with docs[0]._doc.entity_id. I don't recommend this solution unless you know what you're doing.


Mongoose does funky stuff when it comes to accessing model properties. Your best bet whenever you're having problems, is either to use .lean() as part of your query, or call .toObject() on the output to convert the model into a plain JS object.

e.g. using .toObject()

Participant.find({entity_id: 0}, function (err, docs) {
   console.log(docs[0].toObject());
   console.log(docs[0].toObject().entity_id)
});

e.g. using lean()

Participant.find({entity_id: 0}).lean().exec(function (err, docs) {
   console.log(docs[0]);
   console.log(docs[0].entity_id)
});