10

アプリにParseを使用しています。他のテーブルへのポインタとして設定された列を持つテーブルをクエリしたいと思います。クエリは次のとおりです。

ParseQuery query = new ParseQuery("CategoryAttribute");
        query.whereEqualTo("categoryId", categoryId);
        query.findInBackground(new FindCallback() {
            @Override
            public void done(List<ParseObject> categoryAttributes, ParseException e) {
                if (e == null) {
                    for (int i = 0; i < categoryAttributes.size(); i++){
                        String atributeCategoryId = categoryAttributes.get(i).getString("categoryId");
                        String attributeKey  = categoryAttributes.get(i).getString("attributeKey");
                        String attributeValue   = categoryAttributes.get(i).getString("attributeValue");

                        setCategoryAtributeRow(atributeCategoryId, attributeKey, attributeValue);
                    }
                } else {
                    Log.d("score", "Error: " + e.getMessage());
                }
            }
        });

したがって、categoryId列は他のテーブルへのポインタです。他の列は正常に機能します。APIとガイドをスキャンしようとしましたが、必要な解決策が見つかりませんでした。助けていただければ幸いです!

4

3 に答える 3

13

これに対する解決策は次のとおりです。

ParseObjectまず、テーブルのタイプからを作成する必要があります。

ParseObject sale = ParseObject.createParseObject("Sale"); 

ParseObject次に、結果からを取得する必要があります。

sale = result.getParseObject(pointer_field);

これで、通常どおりに、任意のフィールドからプルできますsale。たとえば、次のようになります。

sale.getString("some_field")

注: クエリを実行しているときに、クエリが返された後にポインタフィールドからデータを抽出できるようにする場合は、ポインタフィールドを含める必要があります。結果:

query.include("pointer_field")

それが役に立てば幸い

于 2013-06-06T06:07:35.023 に答える
4

@Akshat Agarwal、JavaScriptの例を次に示します。

var parseObj = Parse.Object.extend('parseObj');

new Parse.Query(parseObj)
  .include('pointerField')
  .find(function (data) {
    data.get('pointerField').get('fieldName');
  });
于 2014-03-04T19:08:12.267 に答える
0

iOSの場合

  PFQuery *parseQuery = [PFQuery queryWithClassName:@"MyClass"];
  [parseQuery whereKey:@"categoryId" equalTo:categoryId];
  [parseQuery includeKey:@"pinter_field"];
  [parseQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
  //
  }];
于 2014-12-29T12:01:04.157 に答える