解析 - 指针数组 - 多对多关系查询

Parse - Array of pointers - Many to Many relationship query

我在以下 table 之间有一个 Many-to-Many 关系:UserSchool。我的用户是parent人,在一所或几所学校有child(ren)

我花了几个小时阅读有关在 NoSQL 数据库上设计 Many-to-Many 关系的内容。我得出的结论是,正确的做法是只在 School table 中存储名为 parentsUser 数组。

在 Parse.com 中,这可以通过指向右侧的指针数组 User object 来实现。

现在,我想检索给定 parent 的所有 School。这是我认为我应该做的:

  var School        = Parse.Object.extend("School");
  var school_query  = new Parse.Query(School);
  var current_user  = Parse.User.current();

  school_query.equalTo("parents.objectId", current_user.id);
  school_query.find().then(
    function(schools) {
      console.log("Success");
    },
    function(error) {
      console.log("Error");
    }
 );

这将返回 POST https://api.parse.com/1/classes/School 400 (Bad Request),调用 "error" 回调,尽管在某些 School.parents 数组中存在与我当前用户对应的指针。

仅当数组包含指向当前用户的指针时,查询指针数组以检索其嵌套 object 的正确方法是什么?

如果 School 上的 "parents" 列是一个指针数组,它的操作数是对象,而不是对象 ID。将相等标准更改为:

school_query.equalTo("parents", current_user);