使用子集合的mongo

时间:2011-10-17 10:04:02

标签: mongodb collections

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

1 个答案:

答案 0 :(得分:8)

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

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

以上查询将加载没有评论的帖子。 Documentation

但嵌入式集合也增加了一些复杂性。例如,你mongodb无法为您排序嵌入式集合。订单始终默认。但是你可以在客户端做到这一点。 如果默认顺序适合您,您可以通过$ slice:

页面嵌套集合
db.posts.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10

另请参阅有关架构设计的doc

只要有可能就嵌入+ 1。