From 22c3bcfeb62542f6fad8714ffa6528d9b8cbbca9 Mon Sep 17 00:00:00 2001 From: jeffbmob Date: Fri, 30 Aug 2024 11:04:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/data/android/develop_doc/index.html | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/data/android/develop_doc/index.html b/docs/data/android/develop_doc/index.html index 8f7d3cf2..de973939 100644 --- a/docs/data/android/develop_doc/index.html +++ b/docs/data/android/develop_doc/index.html @@ -512,7 +512,7 @@ @@ -3763,16 +3763,18 @@

include用法内部查询

-

如果你在查询某个对象列表时,它们的某个字段是BmobObject类型,并且这个BmobObject匹配一个不同的查询,这种情况下可使用addWhereMatchesQuery方法。

-

请注意,默认的 limit 限制 100 也同样作用在内部查询上。因此如果是大规模的数据查询,你可能需要仔细构造你的查询对象来获取想要的行为。

-

例如:查询带有图片的帖子的评论列表:

+

关联表条件查询

+

如果A表中有一个Pointer类型,指向B表。你现在想查询出A表的结果,但是需要对指向的B表内容指定查询条件,那么,就可以用 addWhereMatchesQuery方法。

+

请注意,默认的 limit 限制 100 也同样作用在关联表条件查询上。因此如果是大规模的数据查询,你可能需要仔细构造你的查询对象来获取想要的行为,不然会很卡。

+

例如:查询评论列表,条件要求是:查询出来的评论对应的帖子是有图片的:

+

表结构解释如下:

+

帖子表的名字为Post,评论表的名字为Commentimage是帖子表中的字段,评论表有一个字段名字为postPost表的Pointer),指向这条评论对应的帖子。

BmobQuery<Comment> query = new BmobQuery<Comment>();
 BmobQuery<Post> innerQuery = new BmobQuery<Post>();
 innerQuery.addWhereExists("image", true);
 // 第一个参数为评论表中的帖子字段名post
 // 第二个参数为Post字段的表名,也可以直接用"Post"字符串的形式
-// 第三个参数为内部查询条件
+// 第三个参数为关联表条件查询的条件
 query.addWhereMatchesQuery("post", "Post", innerQuery);
 query.findObjects(new FindListener<Comment>() {
 
@@ -3788,13 +3790,13 @@ 

内部查询BmobQuery<Comment> query = new BmobQuery<Comment>(); BmobQuery<Post> innerQuery = new BmobQuery<Post>(); innerQuery.addWhereExists("image", true); // 第一个参数为评论表中的帖子字段名post // 第二个参数为Post字段的表名,也可以直接用"Post"字符串的形式 -// 第三个参数为内部查询条件 +// 第三个参数为关联表条件查询的条件 query.addWhereDoesNotMatchQuery("post", "Post", innerQuery); query.findObjects(new FindListener<Comment>() { @Override