Home > Enterprise >  How to load referenced document in Mongoose?
How to load referenced document in Mongoose?

Time:11-15

I have a MongoDB collection called categories which has a self-reference(parent) like follows.

const schema = mongoose.Schema({
    name: String,
    parent: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Category',
    }
});

export default mongoose.model('Category', schema);
When i query it just returns the object id of the referenced document.


{ "_id": "63731fe1ce1bf2f534f9307e", "name": "Glass cleaners", "parent": "63731fbbce1bf2f534f9307d", }


I want to load the document referenced by `parent`, so i used following code to load the parent seperatly.

let parentCat = await Category.findOne({ _id: category.parent });


Is there an easy way of doing this because above is bit difficult to maintain if in my opinion.

Thanks

CodePudding user response:

You can use query population in mongoose instead of querying parent again.

https://mongoosejs.com/docs/populate.html

You have to call populate() when you query which will load parent document.

 Category.find().populate('parent');

Highly suggest you to go through the mongoose documentation.

  • Related