gpt4 book ai didi

java - parse.com - 使用 .include() 查询检索数组数据有多深?

转载 作者:行者123 更新时间:2023-12-01 13:26:01 25 4
gpt4 key购买 nike

我的问题是 - 使用 .include() 查询检索数组数据的深度有多深?(这是针对parse.com平台上的android)

背景 - 我正在尝试确定设计数据关系的最佳方式。我的数据之间有 X 级关系,例如:祖 parent 对象包含父对象数组,包含子对象数组,包含孙对象数组,曾孙对象数组,或者只是...

祖 parent 对象 -> 父对象 -> 子对象 -> 孙对象 -> 曾孙对象。

如果我对祖 parent 对象执行查询并想要包含父对象数组,那么我知道必须在查询中添加“.include(Parent)”。但是,如果我这样做,数组包含的深度会有多深?它还会包含子对象数组(依此类推)直至曾孙对象数组吗?

我只想要祖 parent 对象及其父对象(而不是所有其他数组子对象)。我不需要所有子数据数组 - 只需要最直接的子数组。但让每个级别都有一个其子级数组似乎是有意义的(因为在我的应用程序中,每个数组中的子级数量约为 10 到 50 个)。

.include() 只会深入一层还是更进一步,有没有办法控制深度?

这是我尝试过的:

//create grandchildren
ParseObject pGrandChild1 = new ParseObject("Grandchild");
pGrandChild1.put("name", "Child 1");
pGrandChild1.saveInBackground();
ParseObject pGrandChild2 = new ParseObject("Grandchild");
pGrandChild2.put("name", "Child 2");
pGrandChild2.saveInBackground();
//create children
ParseObject pChild1 = new ParseObject("Child");
pChild1.put("name", "dad");
ArrayList<ParseObject> pGrandchildArray = new ArrayList<ParseObject> ();
pGrandchildArray.add(pGrandChild1);
pGrandchildArray.add(pGrandChild2);
pChild1.put("grandchildren", pGrandchildArray);
pChild1.saveInBackground();

使用上面的代码,它只添加要解析的 2 个孙子,而不是 child (即 2 个 child 的 parent 或父亲)。如果我注释掉与 ArrayList 代码相关的 4 行,那么它会添加要解析的 pChild1(“爸爸”对象)以及他的 2 个 child 。显然,这并没有像我想要的那样添加数组关系,但是,我不确定为什么上面的代码没有添加关系。

我什至在pGrandChild2.saveInBackground();行之后添加了一个Thread.sleep(5000);,认为保存对象之间可能需要一点时间。这也没有帮助。

最佳答案

根据 the documentation :

You can also do multi level includes using dot notation. If you wanted to include the post for a comment and the post's author as well you can do:

query.include("post.author");

You can issue a query with multiple fields included by calling include multiple times. This functionality also works with ParseQuery helpers like getFirst() and getInBackground().

在您的情况下,这意味着您可以使用以下方式查询祖 parent 对象:

query.include("parents.children.grandchildren.greatgrandchildren");

请注意,parents 是 Grandparent 上数组的属性名称,children 是 Parent 上数组属性,等等。

关于java - parse.com - 使用 .include() 查询检索数组数据有多深?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21803453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com