0

我有一个 Post 类,其中包含一个名为“comments”的嵌入式文档列表,在这里我要做的就是检索用户发布的所有帖子的最新评论。

我怎样才能做到这一点?我当前的代码,我只是遍历该用户的“发布”类并手动收集“评论”。但我也希望它按最近添加的排序,所以有排序功能来循环手动收集的评论并重新排序。

这似乎非常低效,所以寻求建议。谢谢!

4

1 回答 1

1

首先,如果您$push通过更新进入列表,那么您将保持评论的顺序。
您可以使用$slice运算符返回最后的 x 评论,例如:

Post.objects(id=xxx).fields(slice__comments=-5)

但是,模式可能效率不高,尤其是在您不断增加评论数量或评论可能未发布的情况下。在这种情况下,您可能希望将评论拆分为他们自己的文档模型并将评论链接到 Post by id。这将是数据库的两次往返,但提供了更大的灵活性 - 例如。您可以按日期过滤并发布。

于 2013-01-31T09:53:44.353 回答