我开始开发第一个带有 mongodb 的 node.js 应用程序,该应用程序将在未来发展为实时应用程序。
我被警告过,mongo 很容易走错路,文档混乱等等。
因此,为了缩小争论范围,我们可以谈谈 GNU/Linux 最新设置和 Node.js。请排除 RDBMS 与 NoSQL 的讨论。请包括使用 Mongo 设置的真实生活经验。
谢谢!
这个列表是无穷无尽的,但这里有几点。
http://www.mongodb-is-web-scale.com/
文档中实际支持的最大神话之一。
相反,您应该认真考虑嵌入,并且可能应该尽量避免嵌入超过 2 个嵌套级别,因为这会使您的生活变得困难,特别是如果您正在寻找对某些元素进行更新的原子性。
不正确,您可以使 MongoDB 查询以不应该的方式运行:http: //docs.mongodb.org/manual/faq/developers/#how-does-mongodb-address-sql-or-query-injection
MongoDB对此一无所知,而是依赖于您以这种方式设计数据库以避免像这样的微优化。
所以每次你:http ://dirolf.com/2010/04/05/stored-javascript-in-mongodb-and-pymongo.html你正在杀死一只小猫(尤其是用eval
),停止杀死小猫。
在这里都没有,停止尝试通过 Map Reduce 来完成它,而只是学习 NoSQL。
当心你在记忆中的内容以及 LRU 是如何工作的。MongoDB 没有自己的内存管理。请注意 MongoDB 用于mmap
内存映射您的数据。
http://www.mongodb.org/display/DOCS/Gotchas
这也是一个问题,因为其中一些点实际上是错误的:
您不能对超过 256G 的现有集合进行分片。
这仅适用于旧的 MongoDB。
我发现在使用 Mongo 时,我不得不在我正常的数据库模式设计之外思考。您不应该试图将您对数据库的先验知识强加到 Mongo 上。
我知道您提到要排除 RDBMS 与 NoSQL,但无论如何我觉得这是一个有效的观点。
乐于改变:-),一旦我开始这样做,Mongo 对我来说似乎很自然。我真的很喜欢它的灵活性。
不要为适合 Mongo 做变通方法,按照 Mongo 的方式去做,你会发现它更容易。