Я использую код облака Парса, чтобы написать метод, который будет возвращать, и массив, содержащий два вспомогательных массива. С массивом - массив команд, а другой - массив, содержащий массивы этих членов команды. С целью получения списка команд и членов их команд. Массивы будут переданы на передний конец iOS для отображения.Parse Cloud Code - Вложение нескольких запросов с реляционными данными
Мои данные в настоящее время структурированы так, что есть объект Team, который может иметь несколько пользователей, но пользователь может иметь только одну команду.
Вот моя функция облака, как она сейчас живет:
var arrayOfUsers = [];
var arrayOfTeamMembers = [];
var arrayOfTeams = [];
Parse.Cloud.define("GetTopTeams", function(request, response) {
var query = new Parse.Query("Teams");
arrayOfTeams = [];
arrayOfTeamMembers = [];
fullArray = [];
query.find().then(function(teams) {
//returns a raw list of teams
return teams;
}).then(function(teams) {
arrayOfUsers = [];
teams.forEach(function(team) {
//add team to subArray1
arrayOfTeams.push(team);
//searches for all users within the team
var memberQuery = new Parse.Query(Parse.User);
memberQuery.equalTo('team', team);
memberQuery.find().then(function(tMember) {
//adds the team member to initial array
arrayOfUsers.push(tMember);
});
}).then(function(){
//pushes the finished array to the team member array
return arrayOfTeamMembers.push(arrayOfUsers);
}).then(function() {
return arrayOfTeams;
});
}).then(function() {
return response.success([arrayOfTeams, arrayOfTeamMembers]);
});
});
Я могу заполнить arrayOfTeams но получать arrayOfTeamMembers оказывается трудно. Есть ли лучший способ их вложить? Я пробовал обещания, но я не знаком с обещаниями Javascript. Я нашел похожие сообщения, но ни один из них не затрагивает проблему, с которой я сталкиваюсь. Какие-либо предложения?
Спасибо, Оскар! Код, похоже, работает, за исключением того, что командаId, которая получает возврат, равна нулю. User.get («team») вернет отношение, но не фактический объект Team. Какие-либо предложения? –
Dominic, когда вы используете 'memberQuery.include (« team »)' вы говорите Parse, чтобы принести полный объект (не только отношение, либо id). Поэтому этот код должен работать, поскольку у вас есть команда для ВСЕХ пользователей. Фактически, когда мы используем 'memberQuery.exists (« team »)', мы гарантируем, что будут запрашиваться только пользователи с командой. Поэтому нет причин для ошибки. –
Я тестировал в своей среде аналогичную модель, и она работает. Возможно, если вы дадите мне больше информации о том, где именно происходит ошибка, я могу вам помочь. –