在node.js的,假设你有异步调用的顺序的MongoDB如:Node.js和MongoDB - 多个异步数据库操作的原子性?
collection.find(query, projection).toArray(function(err, result) {
var document = result[0];
// Do something based off of fields in document...
collection.update(...)(function(err, result) {
// Do something...
});
});
这是否会整块发生原子?或者在快速连续多次调用此方法时可能发生交错?
我的想法是:由于find是一个异步操作,它发生在一些后台线程上。因此,第二次调用此方法可能会运行相同的find命令并在第一次调用之前有机会更新文档之前得到完全相同的结果。然后第二个调用对文档有一个陈旧的引用。
这是正确的还是我想这一切都错了?