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