【问题标题】:How to directly access MongoDB API from Mongoid?如何从 Mongoid 直接访问 MongoDB API?
【发布时间】:2011-06-14 10:56:32
【问题描述】:

我想使用 MongoDB 的 addToSet 方法,但是 Mongoid 目前还不支持这个。有没有办法从我的 Rails 模型中直接访问 MongoDB 驱动程序?

【问题讨论】:

    标签: ruby-on-rails-3 mongodb mongoid


    【解决方案1】:

    直到并包括 Mongoid 2.4,您可以使用以下方式访问数据库对象

    db = Mongoid.master
    

    【讨论】:

    • 这不适用于 3+。但是,MyModel.collection.database 可以
    【解决方案2】:

    我问了这个问题on Mongoid group,这是最好的回答:

    假设您的模型对象是 Mongoid::Document,只需调用 "db" 方法来获取 Mongoid 的 Mongo::DB 对象的句柄 在引擎盖下使用。

    http://rdoc.info/github/mongoid/mongoid/master/Mongoid/Collections/Cl...

    从那里,您可以直接使用 MongoDB Ruby 驱动程序 API。

    http://api.mongodb.org/ruby/current/file.TUTORIAL.html#

    此外,您可以使用 ModelName.collection 访问记录集合。

    【讨论】:

    • 看起来db 方法已退出,collection 方法已加入!
    【解决方案3】:

    您可以使用来自 mongodb 的 mongo-ruby-driver gem:

    https://github.com/mongodb/mongo-ruby-driver

    查看api中的更新方法:

    http://api.mongodb.org/ruby/1.2.0/Mongo/Collection.html#update-instance_method

    而这个选项可能就是你想要使用的addToSet

    (Boolean) :upsert — default: +false+ — if true, performs an upsert (update or insert)
    

    【讨论】:

      猜你喜欢
      • 2015-07-25
      • 2022-01-27
      • 2013-01-26
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      相关资源
      最近更新 更多