如果NodeJS是单线程的,为什么我们需要在mongodb中处理并发?

时间:2015-09-02 05:05:05

标签: node.js mongodb transactions

我在服务器端使用nodejs和mongodb。

我可以使用update if found处理mongodb文档以进行交易处理,例如 -

// Pseudocode
var filter = { _id : 123, status : single };
db.myself.update(filter, new_document);

这会将自己的状态从单个更新为已提交。其他线程不会更新,因为状态不再是单一的。

NodeJS在单线程中运行。那么,以下代码也将是事务安全的 -

// Pseudocode
var filter = { _id = 123 };
db.myself.findOne(filter).toArray(function(err, result)) {
   if(!err) { 
      if(result.status == single) { // checking status manually
          db.myself.update(filter, new_document);
      }
   }
});

0 个答案:

没有答案