7
votes

À Mongo, n'importe quelle façon de vérifier et de définir une opération atomique?

est à Mongo n'importe quel moyen de vérifier et de définir une opération atomique? Je fais des réservations pour les hôtels et s'il y a une chambre gratuite, vous pouvez réserver, mais si deux personnes ou plus veulent se réserver dans la même heure. Y a-t-il quelque chose de similaire à la transaction à Mongo ou à quelque chose de résoudre ce problème?


0 commentaires

3 Réponses :


4
votes

Oui, c'est l'étui d'utilisation classique pour MongoDB's FindAndModify < / a> commande.

Spécialement pour PymonGo: recherche_and_modifie .


0 commentaires

2
votes

Toutes les mises à jour sont des opérations atomiques sur un document. Maintenant, Find_and_Modifie les serrures qui documentent et le renvoient dans la même opération. Cela vous permet de combiner un verrouillage sur le document pendant la recherche, puis applique l'opération de mise à jour.

Vous pouvez en trouver plus sur les opérations atomiques: http://www.mongodb.org/display/docs/atomic+operations

meilleur,

Norberto


0 commentaires

0
votes

La documentation des réponses de référence FindAnify. Mais un exemple pratique étant donné que les exigences de l'OP feront justice: xxx

dans l'exemple ci-dessus, ma décision d'utiliser db.runcommand versets DB.Chambres. FindAndModify était stratégique. dB.RunCommand retournera un code de statut quant à savoir si le document a été mis à jour, ce qui me permettra d'effectuer des travaux supplémentaires si la valeur de retour était vraie. FindAndModifie simplifie simplement l'ancien document, à moins que le drapeau nouveau est transmis à la liste des arguments par laquelle il retournera le document mis à jour.


0 commentaires