Nested queries using javascript in cloud code (Parse.com)

前端 未结 3 662
予麋鹿
予麋鹿 2020-12-31 16:30

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          


        
3条回答
  •  余生分开走
    2020-12-31 16:55

    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");
      });
    });
    

提交回复
热议问题