【问题标题】:MongoMapper, increment and update other attributes at the same time?MongoMapper,同时增加和更新其他属性?
【发布时间】:2011-03-08 12:42:33
【问题描述】:

如何在一个操作中完成以下操作:

  • 通过一些键值对查找或创建对象
  • 增加对象的属性。

我现在正在这样做:

Model.find_or_create_by_this_and_that(this, that).increment("a" => 1, "b" => 1)

这样做的正确方法是什么?

【问题讨论】:

    标签: ruby-on-rails mongodb mongomapper


    【解决方案1】:

    从 javascript 你应该能够做类似的事情

    db.model.update({"_id" : "xyz"}, {$inc : {"a":1,"b":1} })

    看起来 MongoMapper 的等效项是

    Model.collection.update({"_id" => self._id}, {"$inc" => {"a" => 1,"b" => 1}})

    MongoMapper 似乎也支持增量功能,但我不熟悉语法。无论哪种情况,第二个命令看起来都与 javascript 版本(和 php 版本)非常相似,所以这可能就是您要查找的内容。

    【讨论】:

    • 也许你可以直接使用 set 与增量属性 Model.collection.update({"_id" => self.id}, {"$set" => {'a' => 1, 'b' => '2'})
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多