Замяна на релация в 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);

просто да променя това, което е имало преди. Не намерих нищо, като се рових в нета.


person Michel    schedule 07.05.2015    source източник


Отговори (1)


Това, което искате, не е релация (предназначена за релации много към много или един към много), вие искате указател (предназначена за релации едно към едно).

Това може да стане чрез промяна на полето на колоната от релация на автори към указател на автори.

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)
    {

    }
});
person Sam    schedule 07.05.2015
comment
Първата част от отговора на Сам е точно това, от което имах нужда. - person Michel; 08.05.2015