How do I get a virtual in mongoose, If a property is deselected

Viewed 69

lets say I have post Model and schema contains UserId , Title, Desc and likes array which takes userId's as ref

when I make a query I get a virtual property like this to find out num of like of a post would have

schema.virtual("numLikes").get(function () {
  return this.likes.length;
});

But the problem is when I run the findById() Method I dont want to get likes from database because likes array would contain large list of users

 const post = await Post.findById(postId).select("-likes -shares");

so how do I get Likes count without fetching likes array ?

1 Answers
Related