PARSE.COM: 查询时获取数据

PARSE.COM: Fetch data at query

在 Parse 中进行查询时,仅下载 ObjectId

有没有办法在同一个调用中下载所有列的数据?

如果没有,哪种获取方式最快?

这是我想出来的,但是由于调用是一个接一个地完成的,所以执行起来需要很长时间。

// Create query
ParseUser user = ParseUser.getCurrentUser();
ParseQuery<Centro> query = ParseQuery.getQuery("...");
query.include(...);
query.whereEqualTo(...);
query.addAscendingOrder(...);

// Execute query
try {
    CLASS = query.find();
} catch (ParseException e) {
    return false;
}

// Force to fetch all data by reading a single column
for (CLASS class : classes){
    try {
        class.fetch();
        class.getSomething();
    } catch (ParseException e) { }
}

感谢任何帮助,谢谢。

我认为如果您按照文档中的方式构建查询,那么您可能会得到如下内容:

ParseQuery<ParseObject> query = ParseQuery.getQuery("FamousPerson");
query.whereEqualTo("name", "Donald Trump");
query.getFirstInBackground(new GetCallback<ParseObject>() {
  public void done(ParseObject object, ParseException e) {
    if (object == null) {
      Log.d("person", "The getFirst request failed.");
    } else {
       String myJob = object.getString("Job") //equals "President"

    }
  }
});

include 函数用于告诉 Parse 也检索其他 table 的内容。我以为我必须在那里输入 table 名称,但是,我不得不输入字段名称。

链接文档以防有人感兴趣:http://docs.parseplatform.org/android/guide/

我在下面的例子中意识到,由于 Comment (table name) 是大写的,而第 query.include("post") 行指定 post 是小写的,所以它必须是一个字段名称。

ParseQuery<ParseObject> query = ParseQuery.getQuery("Comment");

// Retrieve the most recent ones
query.orderByDescending("createdAt");

// Only retrieve the last ten
query.setLimit(10);

// Include the post data with each comment
query.include("post");

query.findInBackground(new FindCallback<ParseObject>() {
  public void done(List<ParseObject> commentList, ParseException e) {
    // commentList now contains the last ten comments, and the "post"
    // field has been populated. For example:
    for (ParseObject comment : commentList) {
      // This does not require a network access.
      ParseObject post = comment.getParseObject("post");
      Log.d("post", "retrieved a related post");
    }
  }
});