现在有两种方案一种是, 把用户的活动放在user collection里,缺点是可能会放很多东西 另一种方案是, 新建一张activities collection,用userId做index 但其实我并不需要同时看多个用户的activities
对于你的需求,建议另加一个collection,采用userId做关联,尽管mongodb优先建议做内嵌处理。分析你的activities既然是用来做用户的活动时间轴,那基本上是每个用户都应该有的。另外,根据你的描述activities会放很多东西,尽管目前mongodb对于单个doucment扩展其大小到16M,但是内容太大的话仍会超出其限制,而且对查询等也会有一定影响。对于此种情况,mongodb也会建议做冗余连接,来模拟SQL的连接查询。
对于你的需求,建议另加一个collection,采用userId做关联,尽管mongodb优先建议做内嵌处理。分析你的activities既然是用来做用户的活动时间轴,那基本上是每个用户都应该有的。另外,根据你的描述activities会放很多东西,尽管目前mongodb对于单个doucment扩展其大小到16M,但是内容太大的话仍会超出其限制,而且对查询等也会有一定影响。对于此种情况,mongodb也会建议做冗余连接,来模拟SQL的连接查询。