解析平台-检索对象中的关系

Parse Platform - Retrieve relations in object

本文关键字:关系 对象 检索 平台      更新时间:2023-09-26

好的,所以我真的很熟悉Parse,并且在日常开发中使用了大多数功能。然而,现在我需要处理一些多对多关系,似乎无法使其正常工作。我试着读了几篇关于Stack的文章……但是运气不好。

如有任何帮助将不胜感激:

1)"Projects"类=(主分组类和项目详细信息)一)'projectTasks'被设置为一个关系列,并指向Tasks类。

2)"任务"类=(用户提交的任务并分组到项目中)

3)我希望能够查询某些项目,并同时获得关系数据。

test: function(){
        console.warn("Running relations test....")
        var deferred = $q.defer()
        var Projects = Parse.Object.extend("Projects");
        var query = new Parse.Query(Projects)
        query.equalTo("objectId",Parse.User.current().id)
        query.include("projectTasks")
        query.find({
            success: function(res){
                console.log(res)
                deferred.resolve(res)
            },
            error: function(e,r){
                console.log(e,r)
                deferred.reject(e)
            }
        })
        return deferred.promise
    },

我得到的响应从来没有从关系字段返回实际数据…只是另一个承诺或什么的。

回复截图

也许我做错了。任何帮助都会很感激。我想存储一个项目,存储任务,并能够将任务关联到一个项目,并快速检索每个项目的所有信息。

您需要执行第二次查询来获取关系数据,这是第二次异步调用。

test: function(){
    console.warn("Running relations test....")
    var deferred = $q.defer()
    var Projects = Parse.Object.extend("Projects");
    var query = new Parse.Query(Projects)
    query.equalTo("objectId",Parse.User.current().id)
    query.include("projectTasks")
    query.find({
        success: function(res){ // my code just assumes you get an answer.....
            console.log(res)
            res[0].get('projectTasks').query().find().then(tasks => {
               const response = {parent: res, tasks: tasks};
               deferred.resolve(response);
            }
        },
        error: function(e,r){
            console.log(e,r)
            deferred.reject(e)
        }
    })
    return deferred.promise
},

如果在这个答案的现实生活中,您正在获得一个结果数组,那么调用这个的客户端代码可能想要处理第二次调用以获得任务,因为它遍历项目…