我这边是一个宠物交易的app,采用了云引擎,最新版,前端用ajax拿数据。
app有Trades类,为交易列表,每个元素有一个列名为relatedPet,关联了一个宠物对象Pets。
现在前端需要根据宠物性质type(狗、猫)、类别variety(泰迪、金毛)进行列表,因此采用关联查询。

目前发现一个问题,在不限制type和variety的情况下,列表结果正常。
当限制query.equalTo('type', 'cat')时,type为dog的全部消失,但是部分type为cat的列表消失。
继续限制query.equalTo('variety', '布偶')时,可以找到消失的列表元素。

这个问题是怎么回事?麻烦各位热心的朋友了!

你好,请提供 App ID 和复现代码。

appid: wJKaQsJS6LkDPkr43vLFphG0-gzGzoHsz
复现代码:

var pageNum = params.pageNum ? params.pageNum : 0;
    query.limit(10);
    if (pageNum) query.skip(10 * pageNum);

    //第一步, 看大类
    params.sort ? query.equalTo("sort", params.sort) : "";
    params.sortAssist ? query.equalTo("sortAssist", params.sortAssist): "";

    //第二步, 看宠物
    if (params.type) {
        var innerQuery = new AV.Query("Pets");
        innerQuery.contains("type", params.type);
        if (params.variety) innerQuery.equalTo("variety", params.variety);
        query.matchesQuery("relatedPet", innerQuery);
    }
    query.find().then(function(tradeList){
        ...
    }

因为Leancloud这个关联查询就是个bug,坑死人了