我开始开发第一个带有mongodb的node.js应用程序,该应用程序将在未来成长为实时应用程序。
我被警告说,使用mongo很容易走错路,文档搞砸了等等。
因此,为了缩小我们可能谈论GNU / Linux最新设置和Node.js的论点。请排除讨论RDBMS与NoSQL。请在Mongo设置中包含现实生活体验。
谢谢!
答案 0 :(得分:3)
这个列表是无穷无尽的,但这里有几点。
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。
答案 1 :(得分:0)
我发现在使用Mongo时,我不得不考虑我的正常数据库架构设计的“外部”。您不应该尝试将您之前的数据库知识强加到Mongo上。
我知道你提到排除RDBMS与NoSQL,但我觉得这是一个有效的观点。
乐于改变:-),一旦我开始这么做,Mongo似乎对我来说很自然。我其实很喜欢它的灵活性。
不要制作适合Mongo的变通方法,以Mongo的方式做,你会发现它很容易。