Meteor: Poderia uma condição de corrida acontecer com Meteor.collections no lado do servidor?
no meu servidor / 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 {}
}
});
Eu tenho medo que quando saveOnServer () é chamado por 2 clientes ao mesmo tempo, ele retornará o mesmo totalCount para cada cliente e basicamente acabará inserindo o mesmo número inteiro no id do objeto. O objetivo final é inserir linha no lado do servidor com uma operação atômica que só é concluída quando ototalCount
é retornado com sucesso e o documento é inserido garantindo que nenhum ID duplicado exista? Eu estou tentando não usar o mongodb _id mas tenho minha própria coluna de id de incremento de inteiro.
Eu estou querendo saber como posso garantir que um campo seja auto-incrementado para cada operação de inserção? Atualmente, estou contando com a contagem total de documentos. É possível uma condição de corrida aqui? Em caso afirmativo, qual é a maneira de lidar com isso?