Hai*_*ter 12 javascript parse-platform
我有一个Player类.玩家可以拥有x个奖杯.我有Player objectId,需要获得所有奖杯的列表.
在Parse.com数据浏览器中,Player对象有一个标记为的列:
trophies Relation<Trophy>
(view Relations)
Run Code Online (Sandbox Code Playgroud)
这似乎应该是这么简单,但我遇到了问题.
我在内存中有ParseObject'播放器':
var query = new Parse.Query("Trophy");
query.equalTo("trophies", player);
query.find({
/throws an error- find field has invalid type array.
Run Code Online (Sandbox Code Playgroud)
我也尝试了关系查询:
var relation = new Parse.Relation(player, "trophies");
relation.query().find({
//also throws an error- something about a Substring being required.
Run Code Online (Sandbox Code Playgroud)
这必须是一个完全常见的任务,但我无法弄清楚这样做的正确方法.
任何人都知道如何在Javscript CloudCode中执行此操作?
非常感谢!
编辑 -
我可以对用户进行关系查询:
var user = Parse.User.current();
var relation = user.relation("trophies");
relation.query().find({
Run Code Online (Sandbox Code Playgroud)
我不明白为什么如果我使用的是非用户对象,这段代码会中断.
我终于对此进行了整理,尽管有一个警告使得这项工作与文档所表明的不同.
//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);
}
})
Run Code Online (Sandbox Code Playgroud)
需要注意的是:你必须在内存中有一个"完整"的玩家对象才能使其工作.您无法保存玩家对象,从成功回调中获取对象并完成此工作.某些原因,在成功处理程序中返回的对象看起来是一个不完整的Parse.Object,并且缺少执行此操作所需的一些方法.
关于Parse.com Javascript SDK的另一个绊脚石 -一个什么都找不到的查询仍然被认为是成功的.因此,每次查询某些内容时,必须检查响应的长度是否大于0,因为成功的查询可能没有返回任何内容.