使用MongoDB处理计数器

时间:2016-11-23 09:28:53

标签: mongodb transactions atomicity

我一直在使用交易数据库,这样做很容易:

City包含一个名为populationCount的列,每当添加/删除Person的{​​{1}}时,该列都会更新。

如何使用像MongoDB 这样的非事务性数据库?假设集合city_id包含数百万个文档:我应该总是查询人口数量,还是可以轻松地将Person存储在populationCount中?我见过transaction example on the MongoDB website,但它谈到了将资金从A转移到B的典型例子。我希望我的问题更容易。

1 个答案:

答案 0 :(得分:1)

当城市的人口数量少于收集人口中该城市的实际人口数量时,是否存在问题?

如果是,那么您可以在应用程序中使用ReaderWriterLock。这意味着只有一个线程可以同时进行写入,您可以将文档写入人员集合,并增加收集城市中的人口数量,并且当正在进行写入但是没有写入时所有线程都没有读取想要阅读的内容可以同时阅读。