Ich werde im Grunde meinen Kommentar als Antwort schlagen:
Um mehr zu erklären, wenn Sie findAndModify
verwenden zu $inc
und von der Zählersammlung diese _id
zurückgeben Dann sollte eindeutig sein, dass das Ausführen dieses Skripts und damit das anschließende Einfügen eines Dokuments. Grundsätzlich würde es bei dieser Methode keine Race-Condition geben.
Das bedeutet, dass Sie eine Art übergeordnete Funktion wie insertWithAI
benötigen was den ersten Rückruf der Verwendung von findAndModify
ausführt um den letzteren Callback des Einfügens zu verketten, aber am Ende des Tages sollten Sie nur zwei Callbacks benötigen.