2011-10-17 106 views
7

对每个用户使用子集合(约15)是否有任何意义?用户数量约为10k。子集合中的记录数量可以达到2M。或者,也许我应该使用常见的大集合?感谢您的回答。使用子集合的mongo

回答

8

嵌入式集合使数据库更简单(它们减少了集合的数量)并使数据库更快地工作。我通常试图嵌入一切,只有当我不能创建单独的集合。如果您的嵌入式集将是很大的,你可以在加载过程中从用户排除:

db.posts.find({ tags : 'tennis' }, { comments : 0 }); 

上面的查询将加载信息没有评论。 Documentation

但嵌入式集合还增加了一些复杂性。例如,你mongodb无法为你分类嵌入的集合。订单总是默认。但你可以在客户端做到这一点。 如果你默认顺序的工作,你可以通过$切片页面嵌套集合:

db.posts.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10 

也看看这个doc约架构设计。

So + 1可以随时嵌入。