I have implementation of Post Comment models in Apollo graphql which schema is and I want to know which implementation is correct?
  type Post {
    id: ID!
    title: String
    image: File
    imagePublicId: String
    comments: [Comment] # we have type for Comment in another schema file
    createdAt: String
    updatedAt: String
  }
  extend type Query {
    # Gets post by id
    getPosts(authUserId: ID!, skip: Int, limit: Int): Post
  }
and I have resolver which resolves Post type and resolves comment by help of populate function of mongoose as bellow:
const Query = {
getPosts: async (root, { authUserId, skip, limit }, { Post }) => {
    const allPosts = await Post.find(query)
      .populate({
        path: 'comments',
        options: { sort: { createdAt: 'desc' } },
        populate: { path: 'author' },
      })
      .skip(skip)
      .limit(limit)
      .sort({ createdAt: 'desc' });
    return allPosts
  }
}
the second way possible way of implementing getPosts query in resolver is by not using populate function of mongoose and resolve it manually by writing a separate function for it:
const Query = {
getPosts: async (root, { authUserId, skip, limit }, { Post }) => {
    const allPosts = await Post.find(query)
      .skip(skip)
      .limit(limit)
      .sort({ createdAt: 'desc' });
    return allPosts
  }
  Post: {
   comments: (root, args, ctx, info) => {
    return Comment.find({post: root._id}).exec()
   }
  }
}
 
    