我正在为我的应用使用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和指南,但找不到所需的解决方案。非常感谢帮助!
答案 0 :(得分:13)
以下是此解决方案:
首先,您需要根据表格的类型创建ParseObject
:
ParseObject sale = ParseObject.createParseObject("Sale");
然后你需要从结果中得到ParseObject
:
sale = result.getParseObject(pointer_field);
现在,您可以从sale
拉出正常情况下的任何字段,例如:
sale.getString("some_field")
注意:强> 在进行查询时,如果希望能够在返回查询后从中提取数据,则必须包含指针字段。结果:
query.include("pointer_field")
希望有所帮助
答案 1 :(得分:4)
@Akshat Agarwal,以下是JavaScript中的一个示例:
var parseObj = Parse.Object.extend('parseObj');
new Parse.Query(parseObj)
.include('pointerField')
.find(function (data) {
data.get('pointerField').get('fieldName');
});
答案 2 :(得分:0)
适用于iOS
PFQuery *parseQuery = [PFQuery queryWithClassName:@"MyClass"];
[parseQuery whereKey:@"categoryId" equalTo:categoryId];
[parseQuery includeKey:@"pinter_field"];
[parseQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
//
}];