Meteor: Könnte mit Meteor.collections auf der Serverseite eine Racebedingung eintreten?

in meinem Server / 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 {}
    }
});

Ich fürchte, wenn saveOnServer () von 2 Clients gleichzeitig aufgerufen wird, gibt es für jeden Client den gleichen totalCount zurück und fügt im Grunde die gleiche Ganzzahl in die Objekt-ID ein. Das Endziel besteht darin, eine Zeile auf der Serverseite mit einer atomaren Operation einzufügen, die erst dann abgeschlossen wird, wenn dietotalCount wird erfolgreich zurückgegeben und das Dokument wird eingefügt, um sicherzustellen, dass keine doppelte ID vorhanden ist? Ich versuche, das mongodb _id nicht zu verwenden, aber meine eigene ganzzahlige inkrementierende Identifikation-Spalte zu haben.

Ich frage mich, wie ich sicherstellen kann, dass ein Feld für jede Einfügeoperation automatisch inkrementiert wird. Ich verlasse mich derzeit auf die Gesamtzahl der Dokumente. Ist hier eine Rennbedingung möglich? Wenn ja, wie geht der Meteor damit um?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage