0
0 Comments

需求不太好描述,我就抽象一下,用小说数据结构来举例说明吧,
这样一下子容易理解多了,理想中的数据看起来应该是这样的:

db.book.collection 里的文档:

`{
name: 小说名
chapter: [
{id: 1, name:章节名, text:小说内容},
{id: 2, name:章节名, text:小说内容},
{id: 5, name:章节名, text:小说内容},
{id: 9, name:章节名, text:小说内容}
]

}`

需求:
1 数据需要分片,因为小说会不断增多
2 chapter 里面的章节会不断增加
3 chapter 里的DOC能够按ID范围读取,例如取5-9章节
4 chapter 能够按列表位置读取,例如读第0位,就是取出ID为1的文档
5 可以返回chapter成员的所有ID,如1,2,5,9

作为一个mongodb新手,我现在还不确定能不能实现以上所有需求,
但有一点,
mongodb好像有:每个文档最大16M的限制,这样chapter不断增加会超出其这个限制,
所以按上面的结构去设计,不知道最终会是一个什么后果,

能不能把chapter提出来作为一个collection?
就是说chapter库下有很多很多 db.chapter.12345 这样的东西,
mongodb是否允许有很多很多collection?

如果允许,是否又能按整个collection分片?