MongoDB多个同时访问一个文档

时间:2015-07-27 10:33:27

标签: database mongodb social-media-like

我正在构建一个社交网络应用程序,我非常关心下一件事。在mongoDB中会发生什么,许多用户(让我们假设数百万)同时尝试修改同一个文档。是否存在任何不匹配,或忽略的查询或任何意外行为?

实际例子: 2个收藏:'帖子'并且'喜欢' 帖子将有字段ID |名字|信息| numberOfLikes 喜欢将有字段id |发布| FROMUSER

当假设数百万用户喜欢这个帖子时,就像对象一样出现在喜欢的内容中。集合和业务逻辑自动增加numberOfLikes for post。我想如果有大量用户试图修改那些帖子同时计数时会发生冲突。

3 个答案:

答案 0 :(得分:1)

数据库有适当的机制来防止这种情况。您可以“锁定”各种逻辑结构,因此无论您的交易数量多少,都可以确保您的数据完好无损。

请参阅以下内容:

http://docs.mongodb.org/manual/faq/concurrency/

答案 1 :(得分:0)

答案 2 :(得分:0)

有几件事。

你说你正在建立一个社交应用程序,并期待数百万的喜欢和#34;"他们在同一时间。当然,在项目开始时考虑性能和扩展是很好的,但是你现在不打算构建下一个Facebook。

此外,您似乎希望将MongoDB用作此应用程序的主数据库,并且您似乎希望将其用作关系数据库。阅读有点偏见的文章Why You Should Never Use MongoDB

我建议您使用关系数据库备份您的网站(这对于像&#34这样的查询也可能更好;此用户喜欢哪些帖子" & #34;此用户是否已经喜欢这篇文章" )并定期将其反正规化为MongoDB。