我正在将大量朋友和关注者从twitter存储到MongoDB。我很惊讶我达到了16MB的限制,但我想如果我抓住那些拥有2M追随者的用户是可以理解的。有没有办法解决?
我正在做一个社交分析项目,并会经常查看这些数组。
以下是我的错误:
...in `serialize': Document too large: This BSON documents is limited to 16777216 bytes. (BSON::InvalidDocument)
同样使用Mongo Ruby gem,Ruby的答案是pref:)
答案 0 :(得分:1)
这不会像您希望的那样有效。 MongoDB确实允许一些非规范化,但你不能将2M项目非规范化为单个父项,正如你所看到的空间问题。
在SQL中,您可以将其实现为两个表。您可以使用MongoDB将其实现为两个集合。它可能看起来不是最佳的,但它代表了MongoDB或SQL中相同的总工作量。
如上所述,MongoDB可能不是您正在寻找的“NoSQL”数据库。图形数据库(如Neo4J)专为分析高度连接的数据而设计。此外,Redis支持没有大小限制的列表,因此这也可能更合适。