Как удалить сущности с отношениями в Kinvey/Angular

Допустим, у нас есть объекты Project и Task в kinvey, каждый объект хранится в собственной коллекции (проекты и задачи). При сохранении этих объектов я определил «отношения», чтобы легко получить доступ к задачам, связанным с проектом.

// Save the Project, and save its Task as separate entity.
var promise = $kinvey.DataStore.save('project', project, {
    relations : { task: 'tasks' }
});

Это было легко, и это есть в документации. Но при удалении задачи вот так:

someService.deleteApplication = function(task){
            return $kinvey.DataStore.destroy('tasks', task._id);
        };

Элемент в коллекции задач удаляется, но элемент в коллекции проектов по-прежнему содержит ссылку на удаленную задачу (в этом случае говорится, что объект проекта имеет 3 задачи (на 1 больше, чем на самом деле) ).

как побороть это? это есть в документах?

Спасибо!


person code4jhon    schedule 05.11.2014    source источник


Ответы (1)


Из документов это не кажется очень ясным, но похоже, что вам нужно обновить отношения в проекте самостоятельно. Получите проект с помощью DataStore.get. Затем удалите эту задачу из массива задач, а затем обновите проект с помощью DataStore.update.

Если вам нужно найти проекты, которые ссылаются на эту задачу, вы можете создать запрос, используя отношение — это из Реляционные данные, выборка, область запросов.

Kinvey не поддерживает запросы, которые обращаются к свойствам связанного объекта. Однако вы можете создавать запросы для извлечения всех сущностей, связанных с определенной сущностью. Это делается путем запроса поля _id ссылки.

person jhoskins98    schedule 14.11.2014