【发布时间】:2014-06-24 20:08:30
【问题描述】:
假设我在猫鼬中有一个架构A。它看起来像这样:
{
arr: [{
num: Number,
text: String
}]
}
现在我要执行以下操作:
选择一个
A,即a。获取
a.arr的项目的实际数量。向
a.arr添加一个新元素,其中包含计数和文本。
我的实现:
A.findOne({_id: someId}, function(err, a) {
var count = a.arr.length;
a.push({
count: count,
text: 'some text'
});
a.save(...)
});
到目前为止工作正常。
但我的问题:
如果我执行该并发,假设有 5 个进程,一些进程在其他进程保存之前执行 findOne。
所以前几个的 count 是 0,然后当他们保存后,它会立即变为 3 或 4 用于下一个进程。
但我希望它能够串行执行。
如何实现?
谢谢!
【问题讨论】:
标签: arrays node.js mongodb concurrency mongoose