Pointers 指针指向非objectId字段的解析平台查询始终返回null
在使用mongoDB进行解析时,我有两个集合:access和tokens 访问收集 代币收集 这就是我添加记录以访问的方式Pointers 指针指向非objectId字段的解析平台查询始终返回null,pointers,join,parse-platform,one-to-many,Pointers,Join,Parse Platform,One To Many,在使用mongoDB进行解析时,我有两个集合:access和tokens 访问收集 代币收集 这就是我添加记录以访问的方式 //Enter Record into Parse with Block ParseObject accessObject = new ParseObject("access"); accessObject.put("tokenid", anaQrCode); accessObject.put("locationid"
//Enter Record into Parse with Block
ParseObject accessObject = new ParseObject("access");
accessObject.put("tokenid", anaQrCode);
accessObject.put("locationid", routeID);
accessObject.put("pTokenId", ParseObject.createWithoutData("tokens", anaQrCode));
accessObject.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e != null){
//error in save
} else {
//save success
}
}
});
}
这就是我如何在一次查询中从两个集合中获取数据的查询方式
//get query result from database
ParseQuery<ParseObject> query = ParseQuery.getQuery("access");
query.include("pTokenId");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e != null) {
//error
Log.d("TAG1", "error " + e);
} else {
//success
for (int i=0; i< objects.size(); i++) {
ParseObject tmpPtoken = objects.get(i).getParseObject("pTokenId");
}
}
}
});
//从数据库获取查询结果
ParseQuery=ParseQuery.getQuery(“访问”);
查询。包括(“pTokenId”);
findInBackground(新的FindCallback(){
@凌驾
公共void done(列出对象,parsee异常){
如果(e!=null){
//错误
日志d(“TAG1”,“错误”+e);
}否则{
//成功
对于(int i=0;i
问题是,tmpPtoken对象始终返回null
我的目标是在单个查询中检索以下信息
//get query result from database
ParseQuery<ParseObject> query = ParseQuery.getQuery("access");
query.include("pTokenId");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e != null) {
//error
Log.d("TAG1", "error " + e);
} else {
//success
for (int i=0; i< objects.size(); i++) {
ParseObject tmpPtoken = objects.get(i).getParseObject("pTokenId");
}
}
}
});
您的列名在图片中是'p_pTokenId',但在代码中保存对象时您正在设置'pTokenId'。没错,Parse在命名指针字段时有一个约定。自动添加“(下划线)\u p(下划线)”作为指针列名的前缀;如果我通过引用tokens集合中的objectId创建了指针,那么对查询的响应就没有问题。然而,要从tokens集合中获取objectId,我必须再进行一次查询,这与我在单个查询中获取lookup字段的目的背道而驰。本质上,我需要像在sql中那样连接表。您能分享一下您的解析模式吗?你的数据看起来不对。您应该在_p_pTokenId中有tokens'u id,而不是tokens'tokenIdDavi,您确实是对的。我故意在_p_pTokenId中使用tokenId,因为在access中保存记录时,我没有办法从tokens集合中知道_id;没有额外的查询。因为我在保存访问记录时知道tokenId,所以我想使用tokenId作为查找集合(tokens)的指针参数。不幸的是,在这种情况下,查询返回null,我想了解原因