解析 - 指针数组 - 多对多关系查询
Parse - Array of pointers - Many to Many relationship query
我在以下 table 之间有一个 Many-to-Many 关系:User
和 School
。我的用户是parent人,在一所或几所学校有child(ren)
我花了几个小时阅读有关在 NoSQL 数据库上设计 Many-to-Many 关系的内容。我得出的结论是,正确的做法是只在 School
table 中存储名为 parents
的 User
数组。
在 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);
我在以下 table 之间有一个 Many-to-Many 关系:User
和 School
。我的用户是parent人,在一所或几所学校有child(ren)
我花了几个小时阅读有关在 NoSQL 数据库上设计 Many-to-Many 关系的内容。我得出的结论是,正确的做法是只在 School
table 中存储名为 parents
的 User
数组。
在 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);