草庐IT

mongoid3

全部标签

ruby-on-rails - Mongoid,如果设置了值,则作用域?

我正在我的rails应用程序中创建一个范围,我希望我的范围返回为相关字段设置了任何内容的文档。scope:address_available,where(:address=>"")因此,因为某些文档可能没有定义该字段,而其他文档将有一个字符串作为值。但是我怎样才能返回不是nil的文件呢? 最佳答案 使用existsscope:address_available,where(:address.exists=>true) 关于ruby-on-rails-Mongoid,如果设置了值,则作用域

ruby-on-rails - 使用 Mongoid 更新嵌入文档会改为更新父文档

当我尝试更新嵌入文档(embeds_many)上的属性时,mongoid无法保存更改,并且奇怪地将更改的属性添加为父文档上的新属性。这是一个简单的单元测试,说明了我正在尝试做的事情:classTabincludeMongoid::Documentfield:name,:type=>Stringembeds_many:components,:class_name=>'TabComponent'endclassTabComponentincludeMongoid::Documentembeds_many:components,:class_name=>"TabComponent"endcl

ruby-on-rails - Mongoid::Errors::MixedRelations + 保存

我有3个模型:classInterestincludeMongoid::Documenthas_many:user_hobbyendclassUserHobbyincludeMongoid::Documentfield:contacts,:type=>Arraybelongs_to:interest,:foreign_key=>"interest",inverse_of:nilbelongs_to:interest,:foreign_key=>"related_interests",inverse_of:nilembedded_in:userendclassUserincludeMon

ruby - 如何使用 mongoid 查询具有非空数组的项目?

我有以下按预期工作的代码:Mongoid::Criteria.new(Question).where(:related_question_ids.size=>0)但是,我想执行查询以返回相关问题数组大于0的问题。例如,Mongoid::Criteria.new(Question).where(:related_question_ids.size.gte=>0)有没有办法用mongoid或mongodb做到这一点? 最佳答案 此查询搜索是否在related_question_ids[0]字段中存在任何对象使用jsshelldb.que

ruby-on-rails - 在 Rails 控制台中列出所有 Mongoid 模型

我想列出在我的mongodb数据库中具有相应集合的所有模型?我正在为MongoDB使用mongoidgem。我会尝试这样的事情ActiveRecord::Base.send:subclasses效果很好,但我没有使用ActiveRecord。 最佳答案 有Mongoid::Config#models:Getallthemodelsintheapplication-thisiseverythingthatincludesMongoid::Document.所有Config方法都可以从Mongoid模块中访问,因此您可以调用:Mongo

ruby - 是否可以指定查询应在 Mongoid 中使用的索引?

当一个索引是另一个索引的子集时,MongoDB似乎使用了一种低效的查询模式。classModelfield:status,:type=>Integerfield:title,:type=>Stringfield:subtitle,:type=>Stringfield:rating,:type=>Floatindex([[:status,Mongo::ASCENDING],[:title,Mongo::ASCENDING],[:subtitle,Mongo::ASCENDING],[:rating,Mongo::DESCENDING]])index([[:status,Mongo::AS

ruby - 带有 eventmachine 的 mongoid 和 mongomapper

我对eventmachine很陌生,我无法在网上找到这个问题的答案。现在我一直在使用带有eventmachine的em-mongo,而且我基本上已经在文档和它们各自的对象之间编写了一个穷人的映射器。我只是想确认mongoid和mongomapper不能在eventmachine环境中使用,因为它们是阻塞的,因此首先破坏了使用eventmachine的点,而且我没有浪费时间编写这些映射器。:P 最佳答案 EventMachine同步可能是您想要的:https://github.com/igrigorik/em-synchrony它支持

ruby-on-rails - 具有默认顺序的 Mongoid embeds_many

如何为我的嵌入对象设置默认顺序,例如:classPostembeds_many:comments,:order=>"author"accepts_nested_attributes_forend现在我直接通过订单来处理它:f.fields_for:comments,@post.comments.asc(:author)do|comment|...end 最佳答案 在mongoid3.1.2中你可以这样做:embeds_many:favorites,order::title.desc它也适用于:title.asc

ruby-on-rails - Rails 3 find_or_create 由多个属性 mongoid

在此链接Railsfind_or_createbymorethanoneattribute?可以在事件记录中使用多个属性。如何在mongoid中使用多个属性?谢谢 最佳答案 如果你查看lib/mongoid/finders.rb中的源代码:#Findthefirst+Document+giventheconditions,orcreatesa#withtheconditionsthatweresupplied....#@param[Hash]attrsTheattributestocheck.##@return[Document]A

mongodb - mongoid 如何为测试和生产环境创建索引

mongoid如何为测试和生产环境创建索引?我是说rakedb:mongoid:create_indexes=>environment如何设置环境?我使用mongoid2.4.9和rails3.2.7。 最佳答案 与Rails的其他rake任务一样,只需在命令行上指定RAILS_ENV即可,例如,rakedb:mongoid:create_indexesRAILS_ENV=test您可以在另一个窗口中跟踪您的日志文件以观察它发生的情况。tail-flog/*.log 关于mongodb-