Loki.js вложенный массив против отдельной коллекции - PullRequest
0 голосов
/ 26 сентября 2018

У меня очень простое приложение с сущностями «Пост» и «Комментарий».Комментарий строго принадлежит ровно одному посту.Оба объекта должны поддерживать операции CRUD.Что будет более «идиоматическим» способом создания хранилища LokiJS для этой модели: наличие двух отдельных коллекций (комментариев, сообщений) и ссылки из комментария на родительское сообщение или для добавления комментариев в виде вложенного массива в сообщениях.

Второй подход может вообще не быть жизнеспособным, поскольку вложенные элементы коллекции (комментарии) не имеют идентификаторов (есть ли способ как-то сгенерировать их в Loki?).Без идентификаторов вы не сможете выполнять CRUD-операции над элементами.

// Approach 1 - separate collection
const posts = db.addCollection('posts');
const comments = db.addCollection('comments');

const post = posts.insert({ title: 'post' });
const comment = comments.insert({ 
    text: 'nice post', parent: post.$loki 
});


// Approach 2 - nested array
const posts2 = db.addCollection('posts2');
posts2.insert({
    title: 'post', 
    comments: [
        // nested items don't have IDs, how to identify them?
        { text: 'nice post' }
    ]
});

Каким будет самый идиоматический способ разработки модели для этой простой задачи?

...