鍍金池/ 問答/數(shù)據(jù)庫/ mongodb 并發(fā)問題

mongodb 并發(fā)問題

偽代碼:

getData: function(req, res) {
  DataCollection.findOne({id: 'abc'}).exec((err, doc)=>{
    console.log(doc.num) // 假設(shè)為1
    doSomethingWith(doc.num) // doc.num現(xiàn)在假設(shè)為34
    doc.save()
    console.log(docs.num) // 正常應(yīng)該為34,45,56..,但是高并發(fā)情況為:34, 34, 34...
    return res.ok()
  })
}

請問應(yīng)該怎么辦?

回答
編輯回答
尕筱澄

用 $inc 去加減. 不要在 function 里面操作.

官方文檔

2018年5月4日 11:01
編輯回答
野橘

問題解決了,在NPM搜索了解redlock這個包

2017年10月29日 04:08