保存"没有数据的对象" Parse Cloud Code中的指针

时间:2015-10-16 16:24:46

标签: javascript parse-platform parse-server

是否可以保存"空"对象中的对象保存引用而不必在之前获取完整的对象?

我这样做:

var myObject = new MyObject();
myObject.id = "id I retrieved somewhere on my client device"

// later
var user = request.user;
user.set("key", myObject);

但是它没有用,它说"无法创建指向未保存的ParseObject的指针"

2 个答案:

答案 0 :(得分:2)

我认为createWithoutData方法是您正在寻找的方法。所以在你的情况下它会像:

 var ClassOfMyObject = Parse.Object.extend("ClassOfMyObject");
 var myObject = ClassOfMyObject.createWithoutData("myObjectId");

 // later
 var user = request.user;
 user.set("key", myObject); 

希望这能回答你的问题。

答案 1 :(得分:0)

解决方案1 ​​:(不是解决方案,只是解释)

要在Parse.com中创建指针或关系,您必须首先放置一个对象。

解决方案2: 但是,您可以在类中创建文本列,并通过这些文本属性创建引用,而不是使用Parse关系。基本上,为存储为文本值的对象创建自己的Id。

如果你决定走这条路线,你需要确保你基本上有一个唯一的ID,因为很难用Parse自动增加。我自己使用这个解决方案。

Create GUID / UUID in JavaScript?

function guid() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
  .toString(16)
  .substring(1);
}
 return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
 s4() + '-' + s4() + s4() + s4();
}

var uuid = guid();

我将其置于角度工厂中以在我的SPA中使用。

使用文本字段并通过这些值引用的唯一问题是它会计入查询及其各种限制。如果你有关系,你可以在不重复查询的情况下返回关系。

我通常根据每个特定数据集的需要使用两者的组合。

解决方案3:

关于拥有"空对象。"是的,您可以创建一个空对象,然后用数据填充它。只要对象在Parse中创建并具有objectId,就可以用它来创建关系。

但请确保在创建关系之前已创建并保存关系模式中的所有对象,然后再次保存。