Parse Cloud 中的关系替换
Relation replacement in Parse Cloud
在 Parse Cloud 函数中,我需要替换关系的值。
我该怎么做?
这是我的代码:
Parse.Cloud.define
(“myCloudFunction”, function(request, response) {
// Code to get myObject …….
// ………
// Now I have myObject in the hand.
myObject.relation("author").add(NewAuthor);
});
如果我保留此代码,myObject 将有 2 个作者:OldAuthor(不管是什么)和 NewAuthor。我不要 2 个作者。
我需要先摆脱之前的东西。那么有没有这样的东西:
myObject.relation("author").replace(NewAuthor);
只是改变以前的内容。
我在网上没找到什么
你想要的不是关系(用于多对多或一对多关系),你想要一个指针(用于一对一关系)。
这可以通过将列字段从作者关系更改为作者指针来完成。
Parse.Cloud.define
(“myCloudFunction”, function(request, response) {
// Code to get myObject …….
// ………
// Now I have myObject in the hand.
myObject.set("author", NewAuthor);
});
或者,您也可以只删除旧作者,然后将新作者添加到关系中。您可以这样做:
var relation = myObject.relation("authors");
var query = relation.query();
query.find(
{
success: function(oldAuthors)
{
// Code to remove all old authors from the relation
for (var i = 0; i < oldAuthors.length; i++)
{
relation.remove(oldAuthors[i]);
}
relation.add(newAuthor);
myObject.save();
},
error: function(error)
{
}
});
在 Parse Cloud 函数中,我需要替换关系的值。 我该怎么做?
这是我的代码:
Parse.Cloud.define
(“myCloudFunction”, function(request, response) {
// Code to get myObject …….
// ………
// Now I have myObject in the hand.
myObject.relation("author").add(NewAuthor);
});
如果我保留此代码,myObject 将有 2 个作者:OldAuthor(不管是什么)和 NewAuthor。我不要 2 个作者。
我需要先摆脱之前的东西。那么有没有这样的东西:
myObject.relation("author").replace(NewAuthor);
只是改变以前的内容。 我在网上没找到什么
你想要的不是关系(用于多对多或一对多关系),你想要一个指针(用于一对一关系)。
这可以通过将列字段从作者关系更改为作者指针来完成。
Parse.Cloud.define
(“myCloudFunction”, function(request, response) {
// Code to get myObject …….
// ………
// Now I have myObject in the hand.
myObject.set("author", NewAuthor);
});
或者,您也可以只删除旧作者,然后将新作者添加到关系中。您可以这样做:
var relation = myObject.relation("authors");
var query = relation.query();
query.find(
{
success: function(oldAuthors)
{
// Code to remove all old authors from the relation
for (var i = 0; i < oldAuthors.length; i++)
{
relation.remove(oldAuthors[i]);
}
relation.add(newAuthor);
myObject.save();
},
error: function(error)
{
}
});