查询 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 数据类中的单个列中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Parse 在 User 中查询 Facebook 好友?

Swift&Parse:查询结果,其中列类等于用户类中的列

Swift Parse 如何让应用离线工作?

Swift,parse.com:如何从查询中传递数据

使用云代码操作 parse.com 类

为我的不同值集合中存在的每个值查询 Parse 数据库 - Android