我目前正在运行Parse云代码后台作业,该作业涉及查询所有用户,然后为返回的每个用户对象运行许多函数。如何将查询设置为仅返回第一个______用户对象,而不是所有对象?
我知道如果您只想返回第一个结果,请执行return usersQuery.first
而不是return usersQuery.each
。是否只有返回前X个结果的等价物?
Parse.Cloud.job("mcBackground", function(request, status) {
// ... other code to setup usersQuery ...
Parse.Cloud.useMasterKey();
var usersQuery = new Parse.Query(Parse.User);
return usersQuery.each(function(user) {
return processUser(user)
.then(function(eBayResults) {
return mcComparison(user, eBayResults);
});
})
.then(function() {
// Set the job's success status
status.success("MatchCenterBackground completed successfully.");
}, function(error) {
// Set the job's error status
status.error("Got an error " + JSON.stringify(error));
});
});
答案 0 :(得分:1)
不幸的是,您无法将.limit
与.each
合并。我建议不要使用后台作业,而是使用解析npm模块在Heroku或其他提供程序(甚至本地计算机)上运行此逻辑。这将允许您更灵活,并且您不需要将其分解为1,000个对象块。
答案 1 :(得分:0)
尝试使用Parse的.limit()
选项:
Parse.Cloud.job("mcBackground", function(request, status) {
// ... other code to setup usersQuery ...
Parse.Cloud.useMasterKey();
var usersQuery = new Parse.Query(Parse.User).limit(7);
return usersQuery.each(function(user) {
return processUser(user)
.then(function(eBayResults) {
return mcComparison(user, eBayResults);
});
})
.then(function() {
// Set the job's success status
status.success("MatchCenterBackground completed successfully.");
}, function(error) {
// Set the job's error status
status.error("Got an error " + JSON.stringify(error));
});
});