Нужна помощь с большой социальной сетью, которую я создаю, используя Node js и Mongoose для моего MongoDB.Mongoose random и реакция смешивания от заселенной модели
Моя идея - смешать отклик от модели, чтобы показать одно сообщение из категории, в которой пользователь следует, а затем показать сообщение из другой категории, в которой пользователь также следит, затем отобразить его из группы (приватная категория). Аналогично 3 + 1 (3 категории + 1 группа), но пользователь может следить за многими категориями и иметь много групп.
Есть ли что-то, что я могу использовать для получения сообщений от RANDOM категорий + групп? Я пытаюсь здесь не изобретать колесо, написав случайную логику Math
Так что это моя упрощенная схема:
var userSchema = new Schema({
groups: [{type: Schema.Types.ObjectId, ref: 'Group'}],
followingCategories: [{type: Schema.Types.ObjectId, ref: 'Category'}]
});
var postSchema = new Schema({
user: {type: Schema.Types.ObjectId, ref: 'User'},
category: {type: Schema.Types.ObjectId, ref: 'Category'}
});
var categorySchema = new Schema({
user: {type: Schema.Types.ObjectId, ref: 'User'},
group: {type: Schema.Types.ObjectId, ref: 'Group'},
posts: [{type: Schema.Types.ObjectId, ref: 'Post'}]
});
var groupSchema = new Schema({
users: [{type: Schema.Types.ObjectId, ref: 'User'}],
categories: [{type: Schema.Types.ObjectId, ref: 'category'}]
});
И она должна быть полезной через модель пользователя как:
User.findById(..., function(err, user){
//logic that gets user posts from random categories and groups
});
Принимая во внимание следующее:
Оно должно быть быстрым (ожидая миллионов отправлять)
Он использует
limit(10)
иskip(int)
для API ленивой нагрузкиКатегории и группы являются случайными, но сообщения в порядке
{created_at: desc}
Пользователь может следовать за многими
categories
и может быть во многихgroups
.
уточните, в чем ваш вопрос? –
@DianaHolland Расширенная случайная функция для нескольких держателей отношений - это то, что он ищет, если я хорошо понял –
@MladenJanjetovic Почему вы удалили код из OP в своем первом редактировании? Код может быть релевантен для некоторых других людей ... –