对于新的MongoDB用户,最重要的警告是什么?

对于新的MongoDB用户,最重要的警告是什么?,mongodb,warnings,real-time,Mongodb,Warnings,Real Time,我开始用mongodb开发第一个node.js应用程序,该应用程序将在未来发展成为实时应用程序 有人警告我,mongo很容易走错路,文档混乱等等 因此,为了缩小争论的范围,我们可以讨论GNU/Linux最新设置和Node.js。请排除RDBMS与NoSQL之间的讨论。请包括真实生活中使用Mongo设置的体验 谢谢大家! 我发现,在使用Mongo时,我不得不“跳出”我的常规数据库模式设计。您不应该试图将数据库的先验知识强加于Mongo 我知道你提到要排除RDBMS和NoSQL,但我觉得这是一个正确

我开始用mongodb开发第一个node.js应用程序,该应用程序将在未来发展成为实时应用程序

有人警告我,mongo很容易走错路,文档混乱等等

因此,为了缩小争论的范围,我们可以讨论GNU/Linux最新设置和Node.js。请排除RDBMS与NoSQL之间的讨论。请包括真实生活中使用Mongo设置的体验


谢谢大家!

我发现,在使用Mongo时,我不得不“跳出”我的常规数据库模式设计。您不应该试图将数据库的先验知识强加于Mongo

我知道你提到要排除RDBMS和NoSQL,但我觉得这是一个正确的观点

对改变持开放态度:-),一旦我开始这样做,Mongo对我来说似乎很自然。我真的很喜欢它的灵活性


不要为了适应Mongo而采取变通办法,用Mongo的方式去做,你会发现这要容易得多。

这个列表没完没了,但这里有几点

MongoDB是web规模的

永远不要联系 其中一个最大的谬论实际上在文档中的某些地方得到了支持

相反,您应该认真考虑嵌入,并且应该尽量避免嵌入深度超过2个嵌套级别,因为这会使您的生活变得艰难,特别是如果您正在寻找原子性,并对某些元素进行更新的话

MongoDB完全不受SQL注入的影响 不正确,您可以使MongoDB查询以其不应有的方式运行:

存储过程 MongoDB对此没有任何意义,相反,它依赖于您以这种方式设计数据库,以避免像这样的微观优化

所以每次你:你在杀一只小猫(尤其是用
eval
),停止杀小猫

加入 这里没有这些,不要再试图通过MapReduce实现了,只要学习NoSQL就行了

工作集与内存管理 了解你正在记忆中的内容以及LRU是如何工作的。MongoDB本身不进行内存管理。MongoDB使用
mmap
内存映射数据的Beaware

官方名单

这也是一个难题,因为其中一些观点实际上是错误的:

不能对超过256G的现有集合进行碎片分割


这只适用于旧版MongoDB。

好的,谢谢分享!您是否遇到过mongo的一些警告,即现金、从崩溃中恢复的困难?从你的回答中,我看到存在一种莫戈方式?你能详细说明一下吗?没问题,实际上我还没有开始生产。希望很快就会出现:-)好吧,这实际上只是NoSql模式设计,所以它不支持连接。这意味着您需要以不同的方式思考数据。哦,谢谢你!有很多书要读!我只对新的设置感兴趣。@Igor我可能会写一整本200页的白皮书,讲述我自己关于在生产中设置MongoDB的问题,这个问题太广泛了,不可能有那么多的细节。如果有一天你愿意,我会第一个买你的书。让我在这里提到你的博客: