Ich entwickle eine Abfrage von Aufgaben. Wenn eine Aufgabe angefordert wird, ich bin wieder den ältesten mit dem folgenden Code:Mongoose Update-Dokument im Moment der Suche nach
Task.find({})
// Filter for those that are not started yet
.where('startDate').equals(null)
// Sort ascending to get the oldest
.sort({ reqDate: 'asc' }).findOne(function (err, task) { ... }
Innerhalb der letzten Klammern, stellte ich den startdate auf die aktuelle Zeit. Die Anforderungen werden durch den Aufruf einer einzelnen NodeJS (Express) API ausgeführt, die Express ausführt und mit MongoDB kommuniziert, indem sie Mongoose verwendet.
Das funktioniert gut mit nur einer Person, die Aufgaben anfordert, aber ich denke gerade an eine große Skala. Was passiert, wenn mehrere Personen im selben Moment anfragen und alle die gleiche Aufgabe erhalten, wie sie in der gleichen Zeitspanne von einigen Millisekunden eintreffen?
Gibt es eine Möglichkeit, sicherzustellen, dass die startDate
des Dokuments in dem Moment, in dem es von Mungo gefunden wird, festgelegt ist?
Danke, genau was ich brauche. Ich werde auf jeden Fall Ihre Vorschläge genauer unter die Lupe nehmen. – Marv