我目前正在为Microsoft Azure移动服务上的类似Instagram的应用程序开发 node.js 移动后端。我决定使用MongoDB并开始编码。但是,当我读到MongoDB架构设计时,我总是最终; “我做对了吗”。这就是为什么我在这里。
潜入技术问题;
现在我有一个像这样的简化用户模型;
{
_id : "userId1" ,
username : "username",
following : ["userId2","userId3" ...],
}
这样的简化媒体模型;
{
_id : "mediaId" ,
mediaUrl : "mediaUrl",
author : { _id : "userId1",
userName : "username"
}
}
因此,当我尝试根据用户获取 newsfeed 时,我应该做的就是检索following
数组以获取以下用户ID并使用$in
运算符进行查询在索引media.author._id
问题是:
1。在考虑百万比例时,这种方法对我来说是个问题吗?
2。此案例的最佳可行方法是什么? (还会有另一个基于坐标的聚合查询,如计数等)
3。现在,我的跟随架构就像;保留用户文档中引用的以下用户标识。还要将关系保存在以下集合中。 (followeeId,followerId)这种方法最适合这种情况吗?
第三个问题是可选的:P
向大家致以问候和赞赏 Sercan