Parse上的反向关系查找

时间:2014-03-24 03:21:47

标签: javascript parse-platform relationship

我正在使用Parse.com来管理我的模型,而我遇到了一个无法找到good解决方案的问题。

假设我必须建模:

Team: name, number, country

Member: name, Team (Pointer to Team)

我想获取所有团队,并在一个查询中包含所有成员。如果无法做到这一点,我将不得不为我提取的每个团队运行一个查询。

Parse有可能吗?我读了他们的文档。但找不到办法... ...

2 个答案:

答案 0 :(得分:3)

如果关键是要获得所有成员和团队,为什么不让所有成员使用

includeKey("Team")

在成员查询中包含所有团队对象?

另一方面,在设计解析(或任何其他NoSQL数据库)时,您应该首先定义要进行的查询,然后设计" schema"。

由于您有一个指向Team from Member的指针,因此这似乎是一对多的关系。团队可以拥有许多成员,但成员只能属于一个团队。

那么,您最常会执行哪些查询? 永远不会列出会员所属的所有团队",因为它只能是一个。 您将查询成员,也可能很高兴看到团队。 您(显然)会查询团队,并需要获得该团队的所有成员。 与团队或成员相关的其他查询?

如果您需要团队中的成员列表,您可以制作"会员"从团队到会员的PFRelation。我知道如果您习惯使用SQL数据库,这似乎很奇怪,但这在NoSQL数据库中并不常见。

答案 1 :(得分:1)

通过帖子中的链接,我最好的猜测是:

var Member = Parse.Object.extend("Member");
var query = new Parse.Query(Member);

// Include the Team data with each Member
query.include("post");

query.find({
  success: function(members) {
    for (var i = 0; i < members.length; i++) {
      // This does not require a network access.
      var team = comments[i].get("team");
    }
  }
});

上述(未经测试的)样本是从include上的部分修改的。

您可能无法在此处执行此操作,具体取决于members列表和team列表的大小...我在文档中遇到了这个问题:

  

如果要检索字段包含Parse.Object的对象   匹配不同的查询,您可以使用matchesQuery。注意   默认限制为100,最大限制为1000适用于内部   查询也是如此,因此对于您可能需要构建的大型数据集   仔细查询以获得所需的行为。为了找到   对包含图片的帖子的评论,您可以这样做: