parse.com - 云代码 - 我用指针做什么?

时间:2014-05-28 17:38:13

标签: parse-platform

有人不明白我想要什么。我想知道用指针做什么。

我有js云代码。

我有一个指针。

我该怎么办?

示例:

var query = new Parse.Query("Messages"); //POINTER QUERY
console.log(userMessages[0].get("messageId"));
console.log("end2");
query.equalTo("objectId",userMessages[position].get("messageId"));

在示例中,userMessages是先前云查询的结果。

这一行

console.log(userMessages[0].get("messageId"));

帮助输出

{"__type":"Pointer","className":"Messages","objectId":"5J4eOletgz"}

这没有你想象的那么有用。我似乎无法从中调用 objectId和查询

query.equalTo("objectId",userMessages[position].get("messageId"));
query.find ({ ... });

什么都不返回。请注意,查询应该找到指针指向的指针对象,但它有助于抛出错误

Error: 102 bad special key: __type

这无关紧要。

指针怎么办? 为什么parse.com上的人不想在任何地方写这些东西?

第二个问题更像是一个佛教公案,让他们冥想,无需回应!

3 个答案:

答案 0 :(得分:6)

你可以使用:

userMessagesQuery.include("messageId")

在执行返回userMessages的查询之前,您将获得" messageId"中的整个对象。而不只是一个指针。

你也用

userMessages[0].get("messageId").fetch({success:function(){}})

如果您不想使用"包含"

,请获取完整的对象

建议:我重命名" messageId"到"消息"清楚地表明它是一个对象指针,而不是一个ID字段。

答案 1 :(得分:3)

指针是一个Parse对象,只有用于链接的最小数据。如果要获取指针的其余数据(完全填充它),请使用fetch()方法。

如果您只想从指针中获取objectId,则可以使用myPointer.objectId属性检索它,就像使用任何其他Parse对象一样。

在您的情况下,以下方法可行,但不是最佳解决方案:

// I would suggest renaming messageId if you're actually storing pointers
var messagePointer = userMessages[position].get("messageId");
query.equalTo("objectId", messagePointer.objectId);

相反,正如@RipRyness所述,您可以将之前的查询更改为include()完整对象,从而避免许多额外查询。

userMessagesQuery.include("messageId");

// ... later in success handler ...

// now a fully populated Message object
var message = userMessages[position].get("messageId");
console.log(message);

答案 2 :(得分:2)

好的,所以指针不仅指向某个对象,而且 BE 该对象。

在返回userMessages结果的查询中,您可以使用.include行(“messageId”) - 这使您的查询不仅返回指向该对象的指针,而且实际上包含该对象代替指针。 / p>

使用include语句后,userMessages[0].get("messageId")将返回与该userMessage对象链接的Message对象。您不再需要查询Message集合来获取对象。