[英]hide a field of virtual population mongoose
我有一个评论集合和一个帖子集合,帖子架构是这样的:
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);
我不想获得 post.comments 的电子邮件字段。 我尝试了 foreach 删除键,但它没有帮助我 tnx
您也可以将常规字段选择方法用于.populate
with 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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.