Den vigtigste MongoDB-funktion i dette område er, at en opdatering til en single dokumentet er atomare. Fra dokumenterne :
Så til din opdatering af:
db.collection.update({done: false, taken: false},{$set: {taken: true, takenBy: myIp}});
det betyder, at den vil finde et dokument, der matcher kriterierne, og derefter opdatere det. Så ja, det vil fungere godt at tildele en opgave til en given server.
Se dette andet indlæg
for flere detaljer om implementering af en delt arbejdskø i MongoDB. Et nøglepunkt, der er nævnt der, er brugen af findAndModify
for både at udføre opdateringen og returner det opdaterede dokument.