可以使用解析服务器进行*反向*关系查询吗?
Posted
技术标签:
【中文标题】可以使用解析服务器进行*反向*关系查询吗?【英文标题】:Can one do a *reverse* relational query using parse-server? 【发布时间】:2021-11-14 21:00:51 【问题描述】:我正在开发一个用户可以阻止其他用户的系统。在用户类上,有一个名为“blockedUsers”的关系,它指向用户表。
如果我有一个用户,我想找到他屏蔽的所有用户,我这样做:
ParseUser user = ParseUser.getCurrentUser();
ParseRelation<ParseUser> relation = user.getRelation("blockedUsers");
ParseQuery query = relation.getQuery();
List<ParseUser> blockedUsers = query.find();
在 SQL 中,这会是这样的:
select block.blockee
from block
where block.blocker = 'SomeObjectId'
这将为我提供被用户“SomeObjectId”阻止的所有用户的 object_id。
在 SQL 中,我也可以反过来说:
select block.blocker
from block
where block.blockee = 'SomeObjectId'
这会给我每个阻止用户“SomeObjectId”的用户的 object_id。
问题是,有没有办法在解析中进行类似于第二个查询的查询?我查看了 ParseRelation.java,其中没有任何明显的内容。 mongodb 使用连接表,但我看不到 向后 连接的方法。
有什么帮助吗?
【问题讨论】:
我们可以得到样本数据集和预期输出吗? 【参考方案1】:是的。有可能的。像这样的东西应该可以满足您的需要:
ParseQuery<ParseUser> userQuery = ParseUser.getQuery();
userQuery.equalTo('blockedUsers', blockeeUserObject);
List<ParseUser> blockers = query.find();
【讨论】:
以上是关于可以使用解析服务器进行*反向*关系查询吗?的主要内容,如果未能解决你的问题,请参考以下文章