Parse.com或查询

时间:2013-12-05 17:23:16

标签: javascript parse-platform

我正在尝试使用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查询中强制执行每个子查询的限制?

1 个答案:

答案 0 :(得分:0)

您可以对组合查询设置限制:即

commentQuery.limit(4);