我的评论模型为:
const commentSchema = new Schema(
{
content: String,
score: Number,
replyingTo: { type: mongoose.Types.ObjectId, ref: "Comment" },
}
);
const Comment = mongoose.model("Comment", commentSchema);
我想返回一个类似于下面的查询。我该怎么做?
{
content:"s sample content for comment",
score:12,
replies:["644914e42dcb3e56cf9e8f4b" , "675fd4914e42dcb3edfr8f9e8f4b" ,"234fd4914e42dcb3edfr8dfr8f4b"]
}
我想通过虚拟属性或聚合框架我们可以做到这一点
1条答案
按热度按时间cig3rfwq1#
你可以通过执行self
$lookup
来获得回复数组。在此之后,它只是一个$project
。由于您的输出具有字符串化的对象ID,因此您可能需要通过数组$map
并转换每个$toString
。如果不需要,您可以仅投影replies: "$replies._id"
playground