gpt4 book ai didi

ruby - 如何使用 mongoid/moped 进行 upsert/push

转载 作者:数据小太阳 更新时间:2023-10-29 06:49:34 25 4
gpt4 key购买 nike

我正在使用 Mongoid (v3) 访问 MongoDB,并希望执行此操作:

db.sessionlogs.update( 
{sessionid: '12345'}, /* selection criteria */
{'$push':{rows: "new set of data"}}, /* modification */
true /* upsert */
);

这在 mongo shell 中工作正常。这也正是我想要的,因为它是一个单一的原子操作,这对我来说很重要,因为我会经常调用它。我不想做两个操作——一个获取然后一个更新。我已经通过 mongoid 尝试了很多东西,但无法让它工作。

我怎样才能让 MongoID 不受影响,只将这个命令发送到 MongoDB?我猜想在 Moped 级别有一些方法可以做到这一点,但该库的文档基本上不存在。

最佳答案

[在写问题时找到答案...]

criteria = Sessionlogs.collection.find(:sessionid => sessionid)
criteria.upsert("$push" => {"rows" => datarow})

关于ruby - 如何使用 mongoid/moped 进行 upsert/push,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11547193/

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