Is it possible to do nested queries in cloud code?
I want to be able to do something like
var adList = [];
var query2 = new Parse.Query(\"QR\");
var
I was able to cobble up the following answer. This works for me. Following the parse.com documentation guidelines for parallel promises. I create two promise arrays. One of them serves as promise array for inner loop. The other one serves as promise array for the outer loop.
Parse.Cloud.define("getFriends", function (request, response) {
var _ = require('underscore.js');
var queryFields = request.params.queryFields;
//var ClassToSearch = Parse.Object.extend("User");
var promises = [];
var promises2 = [];
var FinalResult = [];
var asyncFunc = function (userIDArray) {
_.each(queryFields, function (queryField) {
var query = new Parse.Query(Parse.User);
query.equalTo("yourColumnName", queryField);
promises.push(
query.find().then(function (results) {
_.each(results, function (resultObj) {
//nested query
var ClassToSearch = Parse.Object.extend("AnotherColumn");
var query2 = new Parse.Query(ClassToSearch);
query2.equalTo("yourColumnName", resultObj);
promises2.push(
query2.first().then(function (itinerary) {
FinalResults.push(itinerary);
}));
});
return Parse.Promise.when(promises2);
})
)
});
// Return a new promise that is resolved when all of the requests are done
return Parse.Promise.when(promises);
};
asyncFunc(queryFields).then(function () {
console.log("all http requests were made");
response.success(FinalResults);
}, function (error) {
console.log("there was some error");
});
});