У меня есть 3 коллекции: meteor.user()
, Categories
и Posts
.
Пользователь может выбрать подписку на сообщения любой категории, сохранив идентификатор категории в массиве в meteor.user()
Конечная цель этого состоит в том, чтобы у пользователя был личный поток, в котором показывались только сообщения в тех категориях, за которыми он следит.
Каждая публикация в Posts collection
содержит массив категорий, в которых она представлена.
и каждая категория содержит в себе массив сообщений, каждое сообщение в массиве имеет поле ID
сообщения.
Где id: 67
- это идентификатор категории, а posts.ID: 74
- это идентификатор сообщения в категории.
ниже - идентификатор сообщения в коллекции сообщений с совпадениями posts.ID в коллекции категорий
Пользователь сохраняет идентификатор категории, чтобы он отображался как массив категорий в meteor.user ()
Когда я это сделаю
Template.userTimeline.helpers({
category: function() {
var posts = Category.find({
id: {
$in: Meteor.user().category
}
});
return posts
console.log(posts);
}
});
я могу сделать это
{{#each category}}
<ul class="article-timeline">
{{#each posts}} {{ID}} {{/each}}
</ul>
{{/each}}
Но это позволяет мне получить доступ к posts.ID в коллекции категорий и отобразить его.
ПРОБЛЕМА
Как я могу пойти дальше и сопоставить сообщения. ID, который я получил с помощью приведенного выше кода, с идентификатором сообщения в Post
, чтобы я мог получить доступ к сообщениям из коллекции Posts
. Могу я сделать что-нибудь подобное?
Template.userTimeline.helpers({
category: function() {
var postsInCategory = Category.find({
id: {
$in: Meteor.user().category
}
});
var postMatch = Post.find({
ID: {
$in: postsInCategory
}
});
return postMatch
console.log(postMatch);
}
});
ДАЛЬНЕЙШЕЕ РЕДАКТИРОВАНИЕ ПОСЛЕ ОТВЕТА ЗИМА
Итак, решение, которое вы мне дали, берет post.title
из объекта сообщения, содержащегося в моей Categories
коллекции, как показано ниже.
Этот post
массив в Category collection
является неполным, это копия оригинального Posts Collection
мне нужно использовать post.ID
, как показано на изображении выше. т.е. массив сообщений в Коллекции категорий, чтобы создать связь многие ко многим с id
сообщения в исходной Коллекции Posts
, поэтому вместо post.title
мне нужно иметь title.rendered
, как показано ниже.
Сборник сообщений.
Если вы видите, что ID
(не верхний идентификатор, который является идентификатором категории), post.ID
в массиве сообщений в коллекции "Категории" является ИДЕНТИЧНЫМ по отношению к id
сообщения в коллекции Posts
. Это суть всего, помогите мне создать отношения, чтобы вместо отображения title
или post.title
из массива сообщений внутри Коллекции Categories
мне нужно было отображать title.rendered
в исходной Коллекции Posts
.