gpt4 book ai didi

javascript - 如何在 Parse JavaScript 中查询关系数据

转载 作者:数据小太阳 更新时间:2023-10-29 04:19:20 25 4
gpt4 key购买 nike

我对 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
}
});

此处 ClassTeamStudent 被建模为一对多关系。

现在,当学生使用自己的用户帐户注册类(class)时,相应的Studentuser 列将设置为当前用户。

然后我想列出所有 creator 或其学生的 user 列(如果存在)等于 currentUser 的所有类(class)。

我如何在 Parse 中创建这样一个引用多个类的查询(或者我如何优化数据库以使这样的查询尽可能高效——而不必创建两个单独的查询?)

感谢任何帮助。

澄清:

我知道我可以按照 Parse 文档中的描述执行 or 查询(我应该在问题中说明这一点),但是,我的问题是关于对关系数据(由指向父级的指针类型属性定义)执行此操作。在这里,我需要用户是 Student 实例的属性,它属于 Team,然后属于 Class,我只想过滤具有其 creator 属性或其孙子(Student 的实例)用户之一的 Class 对象等于 currentUser 的属性,有效地仅列出您创建的或注册为学生的类(class)。

最佳答案

由于当前的数据库模式具有嵌套的指针,如果不对其进行调整,则没有简单的方法来实现这一点。


数据库模式

Class 类中,添加一个 RelationArray 字段以包含对 Student/ 的引用用户对象。如果您使用 User 作为对象指针,我们一开始就不需要查找 Student

查询

我假设您在 Class 类中有 students 作为新的 Array 字段。 students 包含 User 对象。

  var user = Parse.User.current();
var studentQuery = new Parse.Query(Class);
var creatorQuery = new Parse.Query(Class);

studentQuery.equalTo("students", user);
creatorQuery.equalTo("creator", user);
var query = Parse.Query.or(studentQuery, creatorQuery);
query.find().then(function(objects){
// Proceed with the results
},function(error){
// Handle error
});

关于javascript - 如何在 Parse JavaScript 中查询关系数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33460230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com