Tag: mongodb

在Rails 3.2中使用Mongoid时删除database.yml

我刚开始一个新的rails项目,想通过Mongoid gem使用MongoidDB。 按照Mongoid站点上的说明,我将以下行添加到我的Gemfile : gem “mongoid”, “~> 2.4” gem “bson_ext”, “~> 1.5” 然后我按照此处的说明继续删除我的database.yml文件。 我的application.rb文件现在看起来像这样: require “action_controller/railtie” require “action_mailer/railtie” require “active_resource/railtie” require “rails/test_unit/railtie” require “sprockets/railtie” # Uncomment this line for Rails 3.1+ 现在,当我使用rails s在开发中启动我的服务器时,我收到以下错误: ~/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0/lib/rails/railtie/configuration.rb:85:in `method_missing’: undefined method `active_record’ for # (NoMethodError) 我试着找一个解决方案,但似乎还没有人遇到我的问题。 难道我做错了什么? 这是由最近的Rails 3.2更新引起的吗? 谢谢你的帮助! 更新(1月26日):根据Dylan Markow的信息,我使用了终端命令 grep -r active_record config/ 并在评论块中将任何引用放入active_record。 我有一个简单的控制器,其中一个动作甚至还没有打到数据库。 当我通过浏览器访问操作时,我得到了 […]

Rails 3:如何同时使用活动记录和mongoid

我读过很多人建议将nosql与sql数据存储区一起使用。 例如,在mysql中有一些报告审计跟踪或日志信息,在mongodb中有一些线程分层数据。 是否有可能在mysql和mongoid上挂起活动记录的rails? 开箱即用它似乎不起作用…任何提示? 或者这是一种不推荐的方法吗?

Rails + MongoMapper + EmbeddedDocument形成帮助

我正在开发一个非常简单的Web应用程序(着名的最后一句话),我正在使用Rails 2.3.5 + MongoMapper 0.7.2并使用嵌入式文档。 我有两个问题要问: 首先,有没有使用Rails + MongoMapper + EmbeddedDocument的示例应用程序? 最好是在GitHub或其他类似的网站上,以便我可以看看来源,看看我应该去哪里? 如果不 … ……处理这项任务的最佳方法是什么? 我将如何创建表单来处理嵌入式文档。 我试图做的是向用户添加地址。 如果你愿意,我可以折腾这两个模型。 谢谢您的帮助!

使用Rails和Mongoid的动态属性

我正在通过带有Rails(Rails 3 beta 3)的Mongoid Ruby gem学习MongoDB,我正试图想出一种基于另一个模型的字段在模型上创建动态属性的方法,我认为这是一种模式 – 少数据库将是一个不错的选择。 所以,例如,我有模型: class Account include Mongoid::Document field :name, :type => String field :token, :type => String field :info_needed, :type => Array embeds_many :members end class Member include Mongoid::Document embedded_in :account, :inverse_of => :members end 我希望获取Account模型的“info_needed”属性,并根据内部的内容在Member模型上创建动态属性。 如果club.info_needed是[“first_name”,“last_name”],我正在尝试创建一个将first_name和last_name属性保存到Member模型的表单。 但是,在练习时,我只是在尝试执行此操作时不断在Member模型上获得“undefined method first_name =”错误。 我知道MongoDB可以处理每个记录的动态属性,但是如何在没有未定义的方法错误的情况下让Mongoid执行此操作?

Mongoid Group By或MongoDb group by in rails

我有一个mongo表,有如下统计数据…. COURSE_ID 状态which is a string, played or completed 和使用Mongoid的时间戳function的时间戳信息 所以我的class级如下…… class Statistic include Mongoid::Document include Mongoid::Timestamps include Mongoid::Paranoia field :course_id, type: Integer field :status, type: String # currently this is either play or complete 我想每天获得一个课程总数的数量。 所以例如… 8/1/12有2个剧本,8/2/12有6个剧本。 等等。因此我将使用created_at时间戳字段,使用course_id和action。 问题是我没有看到Mongoid中的group by方法。 我相信mongodb现在有一个,但我不确定如何在rails 3中完成。 我可以使用每一个来遍历表格,并在轨道中加入一些地图或散列,但是如果课程有100万个视图,那么检索和迭代超过一百万个记录会很麻烦。 有干净的方法吗?

在MongoDB上实现自动完成

假设我有一组用户,并希望在这些用户的用户名上实现自动完成。 我查看了mongodb文档,$ regex似乎是一种方法。 有没有更好的办法? 更好的意思是更高效/更好的练习。

Mongoid批量更新/ Upsert替代?

我知道Mongoid v3 +支持通过Model.collection.insert()批量插入。 但是,我不认为它支持批处理更新,其中每个记录的属性不同(所以我不认为update_all也可以工作)。 有没有办法进行批量更新/ upsert而不是单记录查找和更新? 这是一个简化的例子,我有2个模型: class Product … has_and_belongs_to_many :lists end class List … has_and_belongs_to_many :products end 创建新Product ,我将其与一个或多个Lists相关联。 但是,我还需要每天更新Product属性而不会丢失List参考信息(我确实没有运行Product上的validation)。 不使用批处理的一种方法是在Product上调用find_or_initialize_by并更新属性。 但对10K-1M +记录这样做是非常耗时的。 另一种使用批量插入的方法是执行Product.delete_all ,然后执行Product.collection.insert(…) ,但这会创建新的product_ids并且不再维护与List的关系。 在这个例子中有没有办法进行批量更新或upsert?

将MongoDB中的_id类型更改为整数是不是很糟糕?

MongoDB对_id使用ObjectId类型。 如果我使_id为递增整数会不会很糟糕? (有了这个gem,如果你有兴趣)

Regexp用于字符串的特定匹配

我需要一个正则表达式来匹配类似的东西 “4f0f30500be4443126002034” 和 “4f0f30500be4443126002034> 4f0f31310be4443126005578” 但不喜欢 “4f0f30500be4443126002034> 4f0f31310be4443126005578> 4f0f31310be4443126005579”

在Mongoid中使用集合级操作

我正在试验Ruby(我不太清楚)和Mongo(我这样做)。我用一个:accessed access字段创建了一个Mongoid模型。 我知道在Mongo我可以运行如下: data = db.collection.findAndModify({ query: { … }, update: {$inc: {accessed: 1}} }) 但是当我在MyModel.collection.find_and_modify中运行MyModel.collection.find_and_modify时,我会回到看似哈希的东西。 有没有办法可以将其强制转换为我的模型类的实例,或者在Mongoid中执行更好的支持查询?