Je veux pousser et tirer des choses d'une pile de manière atomique en utilisant ruby et mongoDB.Comment implémenter une pile atomique avec mongoDB et Ruby
La pression que je peux faire atomiquement par l'exemple de code suivant:
collection.update({"_id" => document["_id"]}, {"$push" => {field_name => value}})
code Exemple pop:
value = collection.update({"_id" => document["_id"]}, {"$pop" => {field_name => -1}})
Malheureusement, la valeur renvoyée ci-dessus n'est pas la valeur qui a été « sauté » hors la pile.
Cela semble être une fonction/fonctionnalité très utile, et j'ai du mal à croire que ce n'est pas possible avec mongoDB.
Mise à jour
Pour le bénéfice de ceux qui recherchent la réponse complète, il est ici (Merci encore Cameron):
result = collection.find_and_modify({:query => {"_id" => document["_id"]}, :update => {"$pop" => {field_name => -1}}})
return result[field_name][0]
C'est un peu compliqué mais ça marche! Merci! –