到目前为止,我开始在工作中使用MongoDB.我想知道MongoDB如何处理并发更新?我已经读过MongoDB中没有锁定功能,所以我想知道处理这个问题的常用做法是什么.
谢谢.
MongoDB使用进程范围的写锁定来保证一次只能执行一次写操作(更新/插入/删除).因此,它自动解决并发问题,因为不允许写并发.
如果4个线程尝试更新操作,则其中一个线程将执行写锁定,执行更新并释放锁定.之后剩下的3个中的一个将抓住锁,进行更新等.
如果您的操作无法包含在单个写入操作中,则并发性才会起作用.请注意,对于最常见的用例(查找文档,更新它并以原子方式获取新版本),MongoDB提供了"findAndModify"命令,该命令就是这样:http://www.mongodb.org/display/DOCS/findAndModify+Command
更新:锁定现在更精细.
使用修饰符操作:
$inc $set $unset $push $pushAll $addToSet $pop $pull $pullAll $rename $bit
所有这些都是原子的.