Замена отношений в 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