当前位置:  开发笔记 > 后端 > 正文

如何使用mongoDB和Ruby实现原子堆栈

如何解决《如何使用mongoDB和Ruby实现原子堆栈》经验,为你挑选了1个好方法。

我想使用ruby和mongoDB以原子方式从堆栈中推出和拉出东西.

我可以通过以下代码示例原子地执行推送:

collection.update({"_id" => document["_id"]}, {"$push" => {field_name => value}})

pop的示例代码:

value = collection.update({"_id" => document["_id"]}, {"$pop" => {field_name => -1}})

不幸的是,上面返回的值不是从堆栈"弹出"的值.

它似乎是一个非常有用的功能/特性,我发现很难相信mongoDB是不可能的.

更新

为了那些寻找完整答案的人的利益,这里是(再次感谢Cameron):

result = collection.find_and_modify({:query => {"_id" => document["_id"]}, :update => {"$pop" => {field_name => -1}}})
return result[field_name][0]

Cameron.. 5

看起来你想要findandmodify命令.此命令允许您以原子方式修改文档并返回已修改的文档.请注意,默认情况下,返回的文档是修改之前的版本.在这种情况下,这正是您想要的,因为您可以自己获取堆栈中的最后一项.

不幸的是我不知道Ruby驱动程序,但是文档应该指向正确的语法方向.



1> Cameron..:

看起来你想要findandmodify命令.此命令允许您以原子方式修改文档并返回已修改的文档.请注意,默认情况下,返回的文档是修改之前的版本.在这种情况下,这正是您想要的,因为您可以自己获取堆栈中的最后一项.

不幸的是我不知道Ruby驱动程序,但是文档应该指向正确的语法方向.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有