我对 Parse 很陌生。
我使用以下代码设置了一个数据库:
var Class = Parse.Object.extend("Class");
var Team = Parse.Object.extend("Team");
var Student = Parse.Object.extend("Student");
var newClass = new Class();
newClass.set("name", className);
newClass.set("code", classCode);
newClass.set("creator", currentUser);
var classACL = new Parse.ACL(currentUser);
classACL.setPublicReadAccess(true);
newClass.setACL(classACL);
newClass.save();
for (var i = 0; i < teamNames.length; i++) {
var team = new Team();
team.set("name", teamNames[i]);
var teamACL = new Parse.ACL(currentUser);
teamACL.setPublicReadAccess(true);
team.setACL(teamACL);
team.save();
for (var j = 0; j < studentNames[i].length; j++) {
if (studentNames[i][j]) {
var student = new Student();
student.set("name", studentNames[i][j]);
student.set("parent", team);
student.save();
}
}
team.set("parent", newClass);
team.save();
}
newClass.save(null, {
success: function(newClass) {
//success
},
error: function(newClass, error) {
//fail
}
});
在这里Class
,Team
和Student
被建模为一对多关系。
现在,当学生使用他或她自己的用户帐户注册课程时,相应Student
的 'user
列将设置为当前用户。
然后我想列出creator
其学生列(如果存在)之一的 ORuser
等于的所有类currentUser
。
如何在 Parse 中创建这样一个引用多个类的查询(或者如何优化数据库以便可以尽可能高效地进行这样的查询——而不必创建两个单独的查询?)
任何帮助表示赞赏。
澄清:
我知道我可以按照 Parse 文档中的描述进行 or 查询(我应该在问题中说明这一点),但是,我的问题是关于在关系数据上这样做(由指向父级的指针类型属性定义)。在这里,我需要 user 是 Student 实例的属性,该属性属于 Team,然后属于 Class,我只想过滤具有 creator 属性或其孙子(学生的实例)用户之一的 Class 对象属性等于 currentUser,有效地仅列出您创建或注册为学生的课程。