1
cdxem713 2015-10-17 08:56:25 +08:00
可以把内容单独分到一个 collection 里面,章节里面存 ref (就是表链接,不知道有没有表述清楚)
还有就是不要用 id 来查询,最好是使用内部的_id 吧 |
2
ljbha007 2015-10-17 09:03:23 +08:00
楼主读一下这三篇文章就很清楚改怎么做了
http://docs.mongodb.org/manual/tutorial/model-embedded-one-to-one-relationships-between-documents/ http://docs.mongodb.org/manual/tutorial/model-embedded-one-to-many-relationships-between-documents/ http://docs.mongodb.org/manual/tutorial/model-referenced-one-to-many-relationships-between-documents/ 楼上说的没错 你这种情况应该 用“表间关联”的模式 这样不仅不会受文档大小限制 还便于搜索和索引 |
3
ljbha007 2015-10-17 09:18:06 +08:00
mongo 官方是推荐 manual reference 的 也就是自己吧_id 字段存下来
DBRef 主要是用于一个 collection 中关联了多个其它 collection 为了减少出错使用 性能上好像并没有什么区别 |
4
CheungKe 2015-10-17 09:35:09 +08:00
@ljbha007 请问下 mongo 横向扩展怎样,我们现在单表在千万以上,还没分表,只用 id 查询。预计 10 亿规模左右,想尝试下 mongodb 。
|
5
ljbha007 2015-10-17 09:42:52 +08:00
|
6
vlike OP @ljbha007
@cdxem713 感谢两位,有点明白了,我现在理解的是: 把所有小说的所有章节都保存在同一个 collection 下面,是不是变成这样: db.chapter.collection: [ {bookid: 1, chapterid: 2, name:章节名, text:小说内容}, {bookid: 1, chapterid: 5, name:章节名, text:小说内容}, {bookid: 1, chapterid: 6, name:章节名, text:小说内容}, {bookid: 1, chapterid: 9, name:章节名, text:小说内容}, {bookid: 99, chapterid: 3, name:章节名, text:小说内容}, {bookid: 99, chapterid: 7, name:章节名, text:小说内容}, {bookid: 99, chapterid: 9, name:章节名, text:小说内容}, {bookid: 99, chapterid: 6, name:章节名, text:小说内容}, ] 如果是这样,那 chapter 集合会很大很大,建索引是肯定的, 但查询的速度会因数据量不断变大而打拆扣吗? |
7
vlike OP |