MongoDB 多个同时访问一个文档

MongoDB multiple simultaneous accesses to one document

我正在构建一个社交网络应用程序,我非常担心下一个 thing.What 会发生在 mongoDB 中很多用户(假设数百万)尝试同时修改同一个文档时间。是否会有任何不匹配、被忽略的查询或任何类型的意外行为?

实例: 2 个合集:'posts' 和 'likes' posts 将有字段 id |姓名 |资讯 |点赞数 喜欢将有字段 id | post |来自用户

当假设有数百万用户喜欢 post 时,喜欢的对象出现在 'likes' 集合中,业务逻辑会自动增加 post 的 numberOfLikes。我想当大量用户试图同时修改 post 喜欢计数时是否会发生冲突。

数据库有防止这种情况发生的机制。您可以 'lock' 各种逻辑结构,因此您可以确保您的数据完好无损 - 无论您的交易数量如何。

查看更多内容:

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

在MongoDB中,操作在文档级别是原子的。 参见 http://docs.mongodb.org/manual/core/data-modeling-introduction/#atomicity-of-write-operations

几件事。

你是说你正在构建一个社交应用程序并期望同时获得数百万个点赞和 "tons" 个点赞。当然,在项目开始时考虑性能和扩展性是件好事,但您现在不会构建下一个 Facebook。

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

我建议使用关系数据库支持您的网站(对于 "What posts did this user like"[=25= 这样的查询也可能更好]) 并定期将其反规范化为 MongoDB。