我有一个Player类。玩家可以拥有x个奖杯。我有Player objectId,需要获得所有奖杯的列表。
在Parse.com数据浏览器中,Player对象有一个标记为:
的列trophies Relation<Trophy>
(view Relations)
这看起来应该很简单,但我遇到了问题。
我在内存中有ParseObject'播放器':
var query = new Parse.Query("Trophy");
query.equalTo("trophies", player);
query.find({
/throws an error- find field has invalid type array.
我也尝试了关系查询:
var relation = new Parse.Relation(player, "trophies");
relation.query().find({
//also throws an error- something about a Substring being required.
这必须是一项完全常见的任务,但我无法找到正确的方法。
任何人都知道如何在Javscript CloudCode中执行此操作?
非常感谢!
修改 -
我可以对用户进行关系查询:
var user = Parse.User.current();
var relation = user.relation("trophies");
relation.query().find({
如果我使用的是非用户对象,我不明白为什么同样的代码会中断。
答案 0 :(得分:5)
我终于对此进行了整理,但有一点需要注意,这使得这项工作与文档所表明的不同。
//Assuming we have 'player', an object of Class 'Player'.
var r = player.relation("trophies");
r.query().find({
success: function(trophies){
response.success(trophies); //list of trophies pointed to by that player's "trophies" column.
},
error: function(error){
response.error(error);
}
})
警告:您必须在内存中拥有一个“完整”播放器对象才能生效。您无法保存玩家对象,从成功回调中获取对象并完成此工作。有些原因,在成功处理程序中返回的对象看起来是一个不完整的Parse.Object,并且缺少执行此操作所需的一些方法。
关于Parse.com Javascript SDK的另一个绊脚石 - 找不到任何内容的查询仍然被认为是成功的。因此,每次查询某些内容时,必须检查响应的长度是否大于0,因为成功的查询可能没有返回任何内容。
答案 1 :(得分:3)
这对我有用:
var Comment = Parse.Object.extend("Comment");
var commentsQuery = new Parse.Query(Comment);
commentsQuery.equalTo("parent", video);//for the given 'video' instance, find its children (comments)
commentsQuery.descending("createdAt");
return commentsQuery.find();
注意:当然,video
是Video类的一个实例。返回find()
意味着我必须处理“承诺”#39}。在任何函数中调用此函数。
这是另一个来自另一个角度的功能:
getRecentCommentsOfAllVideos: function(limit) {
var Comment = Parse.Object.extend("Comment");
var commentsQuery = new Parse.Query(Comment);
commentsQuery.descending("createdAt");
commentsQuery.limit(limit);
commentsQuery.include("parent");//this enables the details of the comment's associated video to be available in the result
return commentsQuery.find();
}
(请务必阅读https://parse.com/docs/js_guide并搜索“#34;包含每条评论的帖子数据&#34;”的行。)
我也看过这些材料;也许他们会帮助你(尽管他们对我没什么帮助):