首页 > 解决方案 > Parse js sdk,如何在文档数据库中查询多对多?

问题描述

在 Parse js 指南中它说:

例如,用户可能有许多她可能喜欢的帖子。在这种情况下,您可以使用关系存储用户喜欢的一组帖子。要将帖子添加到用户的“喜欢”列表中,您可以执行以下操作:

var user = Parse.User.current(); var relation = user.relation("likes"); relation.add(post); user.save();

我的用例实际上就是这个确切的设置。我们有用户,他们可以“喜欢”0 个帖子,所以我完全按照上面的说明进行设置。我现在的问题是,对于给定的帖子或一组帖子,我需要查询有多少用户喜欢每个帖子。我无法弄清楚如何查询...有人可以帮我吗?我不确定这是否是一个限制,或者我只是没有足够的知识来解决这个问题。我曾考虑在 Post 本身上存储一个计数器,并在每次用户喜欢或不喜欢 Post 时使用 increment() 和 decrement(),但如果我能侥幸逃脱,我宁愿不这样做。

标签: parse-platform

解决方案


有几种方法可以做到这一点。一种方法是在每个帖子上也有一个关系,likedBy因此当用户喜欢一个帖子时,您可以将该用户添加到该帖子的likedBy关系中,并将该帖子添加到该用户的likes关系中。

另一种解决方案是为Like. 每当用户喜欢帖子时,您都会创建一个Like带有指向该帖子PostUser喜欢它的人的新帖子。然后,如果您想找到用户喜欢的帖子,您可以轻松查询,或者如果您想知道哪些用户喜欢帖子,那么查询同样简单。

我个人使用第二种方法,但任何一种都可以


推荐阅读