将服务器云代码查询解析为指针
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" )
【讨论】:
以上是关于将服务器云代码查询解析为指针的主要内容,如果未能解决你的问题,请参考以下文章