可以使用解析服务器进行*反向*关系查询吗?

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();

【讨论】:

以上是关于可以使用解析服务器进行*反向*关系查询吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用Bind部署DNS域名解析服务器

nginx反向代理service name可以为ip吗

搭建DNS服务-----正向解析反向解析泛域名解析。

搭建DNS服务,正向解析和反向解析搭建DNS服务器

在Linux系统中,使用Bind搭建DNS域名解析服务

DNS的正向解析与反向解析