在我的服务器/server.js
Meteor.methods({
saveOnServer: function() {
var totalCount = Collections.find({
"some": "condition"
}).count();
if (totalCount) {
var customerId = Collections.update('someId', {
"$addToSet": {
objects: object
}
}, function(err) {
if (err) {
throw err;
} else {
return true;
}
});
} else {}
}
});
恐怕当 2 个客户端同时调用 saveOnServer() 时,它会为每个客户端返回相同的 totalCount 并且基本上最终将相同的整数插入到对象 id 中。最终目标是使用原子操作在服务器端插入行,该原子操作仅在totalCount
成功返回并插入文档时完成,以确保不存在重复的 id?我试图不使用 mongodb _id 但有我自己的整数递增 id 列。
我想知道如何确保每个插入操作的字段自动递增?我目前依靠获取文件总数。这里可能存在竞争条件吗?如果是这样,流星的处理方式是什么?