Parse云代码中的嵌套查询

时间:2018-02-04 18:38:19

标签: javascript parse-platform cloud-code

我很困惑如何使用解析云代码来执行嵌套查询或关系查询。

我想要做的是从table1获取符合条件的所有objectId。

然后使用那些objectId来查询table2并检查query2.equalTo(“table2ID”,table1 [i] .objectId);

然后获取与该query2匹配的所有对象的计数以及是否< X返回table1 [i]。

1 个答案:

答案 0 :(得分:0)

因为你真的想要计算table2的成员,所以把它作为你的主要查询......

var query = new Parse.Query("Table2");

你想要计算的是与table1元素相关联的table2元素,这样table1元素匹配某些标准...

var innerQuery = new Parse.Query("Table1");
innerQuery.equalTo("someKey", "someValue");  // some criterion
query.matchesQuery("table2ID", innerQuery);

现在,算一下......

query.count().then(count => /* do something if count > X? */);

为此正确设置数据非常重要:

  1. 初始化table2元素时,需要对table1对象(而不仅仅是表示id的字符串)进行实际引用。

    myTable1Object = // whatever
    myTable2Object.set("table2ID", myTable1Object.id);  // WRONG
    myTable2Object.set("table2ID", myTable1Object);     // correct
    
  2. 我认为你在问题中使用的虚构名称也可能会增加一些混乱。指向table1的实际指针最好称为“table1”。也就是说,不是table2(它出现的表)和没有“ID”后缀,这意味着它违反了上面的第1点。