document["-6ren">
gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:12:41 24 4
gpt4 key购买 nike

我想使用 ruby​​ 和 mongoDB 以原子方式从堆栈中推送和拉取内容。

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

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

弹出示例代码:

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]

最佳答案

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

不幸的是我不知道 Ruby 驱动程序,但是 documentation应该在语法方面为您指明正确的方向。

关于ruby - 如何使用 mongoDB 和 Ruby 实现原子堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3946541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com