在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命令並在第一次調用之前有機會更新文檔之前得到完全相同的結果。然後第二個調用對文檔有一個陳舊的引用。
這是正確的還是我想這一切都錯了?