代码之家  ›  专栏  ›  技术社区  ›  Seyed Ali Dehghan

隐藏虚拟种群猫鼬字段

  •  0
  • Seyed Ali Dehghan  · 技术社区  · 2 年前

    我有一个评论集合和一个帖子集合,帖子模式如下:

    postSchema.virtual("comments", {
      ref: "Comment",
      localField: "_id",
      foreignField: "post",
    })
    

    当我想看到帖子的评论时,我会用这个:

       const post = await Post.findById(req.params.id);
        await post.populate("comments");
        res.send(post.comments);
    

    我不想得到邮件的电子邮件字段。评论。我尝试了foreach delete键,但没有成功 感谢tnx帮助我

    1 回复  |  直到 2 年前
        1
  •  0
  •   robertklep    2 年前

    您可以使用常规 field selection method 对于 .populate 还有virtuals:

    await post.populate("comments", "-email");
    // or if you want to exclude more than one field:
    // await post.populate("comments", "-email -field2 -field3");
    

    如果要使用 积极乐观的 选择(哪些字段 应该 包括在结果中),确保始终包括 foreignField 虚拟的(在这种情况下 post ):

    await post.populate("comments", "post field2 field3");