// 构建内嵌查询
AVQuery *innerQuery = [AVQuery queryWithClassName:@"TodoFolder"];
[innerQuery whereKey:@"likes" greaterThan:@20];
// 将内嵌查询赋予目标查询
AVQuery *query = [AVQuery queryWithClassName:@"Comment"];
// 执行内嵌操作
[query whereKey:@"targetTodoFolder" matchesQuery:innerQuery];
[query findObjectsInBackgroundWithBlock:^(NSArray *comments, NSError *error) {
    // comments 就是符合超过 20 个赞的 TodoFolder 这一条件的 Comment 对象集合
}];

关于内嵌查询,主要想问,构建内嵌查询有没有数量限制(100条数据的限制)?
最主要的问题是,他是先根据我目标查询出的结果(10条),在去内嵌操作,筛选出最终数据(5条), 还是说先筛查出(10万条),在让目标查询根据这个筛选出来的数据,再去执行查询,最终筛出数据(5条呢)?

如过需求是,获取对某个问题所有男性或者女性的评论,这样的需求,这样写的,但是好像有问题怎么解决
// 构建内嵌查询
AVQuery *innerQuery = [AVQuery queryWithClassName:@"_User"];
[innerQuery whereKey:@"sex" equalTo:@1];

//
AVQuery *query = [AVQuery queryWithClassName:@"Comment"];
// 执行内嵌操作
[query whereKey:@"likeUser" matchesQuery:innerQuery];

[query whereKey:@"Dynamic" equalTo:@"某条动态id"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

}];

你好,内嵌查询也有数量限制,会返回符合结果的数据,默认最多返回 100 条,可以通过 limit 来设置限制。
如果符合 innerQuery 的结果只有 10 条,那么就会返回 10 条,外层的 Query 再根据这 10 条进行筛选。

如过需求是,获取对某个问题所有男性或者女性的评论,这样的需求,这样写的,那样的话我的用户有好多,这样的需求怎么实现(不要是查到所有用户,然后再遍历筛选性别)
// 构建内嵌查询
AVQuery *innerQuery = [AVQuery queryWithClassName:@"_User"];
[innerQuery whereKey:@"sex" equalTo:@1];

//
AVQuery *query = [AVQuery queryWithClassName:@"Comment"];
// 执行内嵌操作
[query whereKey:@"likeUser" matchesQuery:innerQuery];

[query whereKey:@"Dynamic" equalTo:@"某条动态id"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

}];

内嵌查询

假如现在有一个需求是展现点赞超过 20 次的 TodoFolder 的评论(Comment)查询出来,注意这个查询是针对评论(Comment),要实现一次查询就满足需求可以使用内嵌查询的接口:
+

// 构建内嵌查询
var innerQuery = new AV.Query('TodoFolder');
innerQuery.greaterThan('likes', 20);

// 将内嵌查询赋予目标查询
var query = new AV.Query('Comment');

// 执行内嵌操作
query.matchesQuery('targetTodoFolder', innerQuery);
query.find().then(function (results) {
// results 就是符合超过 20 个赞的 TodoFolder 这一条件的 Comment 对象集合
}, function (error) {
});

query.doesNotMatchQuery('targetTodoFolder', innerQuery);
// 如此做将查询出 likes 小于或者等于 20 的 TodoFolder 的 Comment 对象

那超过20个赞的大于100条,岂不是就查不到了,例子都不合理

如题,如果innerQuery的结果大于1000条,内嵌不就有问题了?官网例子里面的大于20个点赞的todo岂不是也有问题。。。。

说的有道理,坐等官方答复。

如果 innerQuery 的结果大于 1000 条,确实不能查到所有的数据,所以要比较小心地构造自己的查询,利用 limit,skip 来保障可以查到相应的结果。