Parse platform 如何从Parse.com集合中查找随机对象
在缺少Parse.Query.random()的情况下,理想情况下,我希望执行以下操作:Parse platform 如何从Parse.com集合中查找随机对象,parse-platform,Parse Platform,在缺少Parse.Query.random()的情况下,理想情况下,我希望执行以下操作: query.count.then(function(theCount){ return query.skip(randomNumber%theCount).first(); }).then(function(aRandomObjectConformingToQuery){ // Do stuff to the random object. }); 但不鼓励计数操作,对于大型查询,计数操作将无
query.count.then(function(theCount){
return query.skip(randomNumber%theCount).first();
}).then(function(aRandomObjectConformingToQuery){
// Do stuff to the random object.
});
但不鼓励计数操作,对于大型查询,计数操作将无法完成
是否有任何方法可以从表的子集中获取随机对象。e、 g.“给我找一个叫罗杰的用户,这样我就可以给他一个奖了”因为这个奖,first()对我不起作用。所以没有
query.random()
,尽管Parse已经将此添加到他们的积压工作中
同时,有两种方法可以获得随机对象:
查询。跳过为随机数[0,计数]
2不太容易出错,因为在解析中维护对象计数是不可靠的,但它不是真正随机的。在我的例子中,它仍然有效。这是在解析中从给定类获取随机对象的工作代码 在云代码中
Parse.Cloud.define("get10Obj",function(request,response)
{
query = new Parse.Query(request.params.movie);
Array.prototype.randomElement = function (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
query.find ({
success: function(results) {
var final10 = [];
for (var i = 0; i < 5; i++) {
var myRandomElement = results.randomElement(0,results.length);
if (final10.indexOf(myRandomElement) == -1) {
final10.push(myRandomElement);
} else {
i--;
}
}
var datalist =[];
for(var j=0;j<final10.length;j++)
{
var index= final10[j];
datalist.push(results[index]);
}
response.success(datalist);
},
error: function() {
response.error(error);
}
});
});
Parse.Cloud.define(“get10Obj”),函数(请求、响应)
{
query=新建Parse.query(request.params.movie);
Array.prototype.randomElement=函数(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1))+min;
}
查询.查找({
成功:功能(结果){
var final10=[];
对于(变量i=0;i<5;i++){
var myRandomElement=results.randomElement(0,results.length);
if(final10.indexOf(myRandomElement)=-1){
最后10.推送(myRandomElement);
}否则{
我--;
}
}
var datalist=[];
对于(var j=0;j)如果我需要查询一个大于1的随机对象怎么办?您的示例仅针对一个随机对象。如果您想从随机索引中获取n个对象,请将query.limit设置为n如果您想要n个随机对象,则需要执行我描述的n次操作。
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("movie", "The Matrix");
ParseCloud.callFunctionInBackground("averageStars", params, new
FunctionCallback<ParseObject>() {
void done(ParseObject ratings, ParseException e) {
if (e == null) {
// Do your stuff
}
}
});