我正在尝试使用OR查询获取查询的每个结果的最新注释,因为承诺缓慢且昂贵:
var queries = [];
_.each(videos, function (video) {
var mostRecentCommentsQuery = video.relation("comments").query();
mostRecentCommentsQuery.descending("createdAt");
mostRecentCommentsQuery.include("creator");
mostRecentCommentsQuery.include("mentions");
mostRecentCommentsQuery.limit(4);
queries.push(mostRecentCommentsQuery);
});
var commentQuery = new Parse.Query.or.apply(this, queries);
return commentQuery.find();
收到此错误:
Failed with: TypeError: function apply() { [native code] } is not a constructor
at Parse.Promise.when.then.then.then.next_page (functions.js:82:28)
at e (Parse.js:2:3909)
at Parse.js:2:3459
at Array.forEach (native)
at Object.x.each.x.forEach [as _arrayEach] (Parse.js:1:664)
at c.extend.resolve (Parse.js:2:3410)
at i (Parse.js:2:2901)
at b.Promise.is.a.then.g.(anonymous function) (Parse.js:2:2992)
at e (Parse.js:2:3909)
at Parse.js:2:3459
但是var commentQuery = Parse.Query.or.apply(this, queries);
没有做任何事情。有什么建议吗?
修改
我修好了初始部分;我从未检查过以确保评论与拥有它们的视频有关联。不幸的是,这导致了一个新问题,查询不受限制。 E.G:
对第一个返回的视频有6条评论。应该返回最近的4条评论。返回所有6个,这可能导致响应时间变慢和数据不准确。
有没有办法在OR
查询中强制执行每个子查询的限制?
答案 0 :(得分:0)
您可以对组合查询设置限制:即
commentQuery.limit(4);