将服务器云代码查询解析为指针

Posted

技术标签:

【中文标题】将服务器云代码查询解析为指针【英文标题】:Parse Server Cloud Code Query to Pointer 【发布时间】:2017-10-10 05:37:49 【问题描述】:

这是我的数据库与类的结构:

用户 -> 对象 ID(字符串) 用户名(字符串)

朋友-> 对象 ID(字符串) toUser(指针 <_user> ) fromUser (指针 <_user> )

我的目标是检索具有用户名的用户,这与具有特定 ID 的 toUser 和 fromUser 列相匹配。 toUser和fromUser变量的指针是“User”表的objectId

我的查询应该如何?

这个我试过了,还是不行

Parse.Cloud.define('FriendsQuery', function(req,res) 
const friends = new Parse.Query("Friends");
friends.equalTo("toUser","fEjQgAPvDO");
const userQuery = new Parse.Query("User");    

userQuery.matchesQuery('friend', friends);
userQuery.find().then((results) => 
    res.success(results);
)
.catch(() =>  
  response.error("user lookup failed");
);
);

我在这个查询中只包含了 toUser 列

有什么想法吗?

谢谢

【问题讨论】:

【参考方案1】:

代码中的第三行应如下所示

friends.equalTo("toUser",__type:"Pointer", className:"User", objectId:"fEjQgAPvDO");

__type 永远是 Pointer className 是存储 objectId 的集合的名称。换句话说,它是指针指向的“表” objectId 是该“表/集合”中的 ID

【讨论】:

嗨,阿隆,谢谢。不幸的是,我的逻辑是错误的。虽然,也许用这个我会得到行,但我不会得到朋友。通过这个查询,我将获取登录用户收到或发送好友请求的行数。但我想要相反,我想要他的朋友列表 如果你想要一个朋友列表,你不会这样做吗? Parse.Cloud.define('FriendsQuery', function(req,res) const friends = new Parse.Query("Friends"); friends.equalTo("toUser",__type:"Pointer", className:"User" , objectId:"fEjQgAPvDO"); friends.find(sessionToken:request.user.getSessionToken()); 是的,但可能存在相反的情况,登录用户“fEjQgAPvDO”已发送请求。所以我想要 fromUser 变量。我应该再做一个 equalto("fromUser", ...)??? OK 这样你就可以做 query.equalTo("toUser", request.user);我认为这会奏效(虽然我还没有尝试过) 是的,也许,但它返回给我一个空数组..有什么想法吗?【参考方案2】:

第三行应该是这样的

friends.equalTo("toUser",  "__type": "Pointer", "className": "_User", "objectId": "fEjQgAPvDO" )

【讨论】:

以上是关于将服务器云代码查询解析为指针的主要内容,如果未能解决你的问题,请参考以下文章

解析服务器云代码将通知徽章设置为特定数字

云代码的解析服务器问题。

使用指针解析服务器查询对象

如何将我的云代码部署到 AWS Elastic Beanstalk? (解析服务器)

将服务器推送通知解析到特定用户问题

如何将云代码从 parse.com 移动到 heroku