【发布时间】:2017-06-27 06:41:01
【问题描述】:
在我使用 Node js 和 Mongoose 为我的 MongoDB 构建的大型社交网络方面需要一些帮助。
我的想法是混合来自模型的响应,显示用户正在关注的类别中的一个帖子,然后显示用户也在关注的另一个类别中的帖子,然后显示来自群组的帖子(私人类别 em>)。类似 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 中删除了一些代码?该代码可能与其他人有关...
-
@ThomasBormans 不,不会。只是网上找的Math random function的随机c/p,有误导性
-
我认为这里的问题实际上是“如何从我关注的群组、关注的类别和关注的用户中获取所有帖子?”
标签: node.js mongodb mongoose mongoose-schema mongoose-populate