查询 Parse 数据库以从 Parse 数据类中的单个列中获取数据
Posted
技术标签:
【中文标题】查询 Parse 数据库以从 Parse 数据类中的单个列中获取数据【英文标题】:Querying a Parse database to get the data from one single column within a Parse data Class 【发布时间】:2015-03-16 10:31:59 【问题描述】:你好我正在玩 Parse,我已经成功创建了一个包含两个类/表用户和帖子的云数据库,我能够注册和登录用户并允许他们发布帖子到数据库。 我现在正在尝试研究如何查询数据库并获取已发布的数据,我的 Posts 类/表由四列组成:|对象 ID |正文 |用户 | createdAt |.我希望能够在我的应用程序中选择并显示“文本”列中保存的所有数据。如果这是一个愚蠢的问题,我的数据库经验很少。 到目前为止的代码:
ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
query.findInBackground(new FindCallback<ParseObject>()
@Override
public void done(List<ParseObject> text, ParseException e)
if (e == null)
Toast.makeText(MainActivity.this, text.toString(), Toast.LENGTH_LONG).show();
else
Toast.makeText(MainActivity.this, "query error: " + e, Toast.LENGTH_LONG).show();
);
我知道我需要将查询限制为仅来自“文本”列的数据,因此我显然在第 1 行和第 2 行之间缺少一行代码。任何帮助将不胜感激。谢谢。
【问题讨论】:
【参考方案1】:来自 Parse API
您可以通过调用 selectKeys 来限制返回的字段 键的集合。检索仅包含乐谱的文档 和 playerName 字段(以及特殊的内置字段,例如 objectId、createdAt 和 updatedAt):
ParseQuery<ParseObject> query = ParseQuery.getQuery("GameScore"); query.selectKeys(Arrays.asList("playerName", "score")); List<ParseObject> results = query.find();
所以要检索文本字段,您所要做的就是:
ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
query.selectKeys(Arrays.asList("text"));
query.findInBackground(new FindCallback<ParseObject>()
@Override
public void done(List<ParseObject> posts, ParseException e)
if (e == null)
List<String> postTexts = new ArrayList<String>();
for(ParseObject post : posts)
postTexts.add(post.getString("text"));
Toast.makeText(MainActivity.this, postTexts.toString(), Toast.LENGTH_LONG).show();
else
Toast.makeText(MainActivity.this, "query error: " + e, Toast.LENGTH_LONG).show();
);
APIreference
Doc reference(就在标题“查询数组值”之前)
【讨论】:
谢谢,真的很有帮助!还有一个问题,当我执行这段代码时,它似乎返回了数据的 ID/Keys,我如何获取实际的文本字符串?? 这样的?字符串文本 = text.getString("text"); (我也会更新答案) 别担心,明白了:String s = text.get(0).getString("text");这将返回位于数据列表位置 0 的字符串。谢谢以上是关于查询 Parse 数据库以从 Parse 数据类中的单个列中获取数据的主要内容,如果未能解决你的问题,请参考以下文章