草庐IT

ruby-on-rails - mongoid - 查询嵌入式文档

classFooincludeMongoid::Documentfield:name,type:Stringembeds_many:barsendclassBarincludeMongoid::Documentfield:name,type:Stringembedded_in:fooend有没有一种方法可以在这里查询所有的bars?在AR中,我会执行类似Bar.where(name:'something')之类的操作-只需给我所有符合某些条件的条形即可。就目前而言,我只能查询单个foo上的特定柱。`Foo.first.bars.where(name:'something')。我知道mo

ruby-on-rails - Mongoid 命名范围比较同一文档中的两个时间字段

我需要在Mongoid中创建一个命名范围,用于比较同一文档中的两个时间字段。比如scope:foo,:where=>{:updated_at.gt=>:checked_at}这显然行不通,因为它处理:checked_at作为一个符号,而不是实际的领域。关于如何做到这一点的任何建议?更新1这是我声明了这个范围的模型,去掉了很多额外的代码。classUserincludeMongoid::DocumentincludeMongoid::ParanoiaincludeMongoid::Timestampsfield:checked_at,:type=>Timescope:unresolved

ruby-on-rails - 何时索引,在 Mongoid 中索引什么?

我对索引有点陌生,但我对索引的用例很好奇。(我假设它使对索引字段的查询更快。)是否有确定索引什么以及何时索引的标准?我应该期待什么样的性能优势——特别是在Rails应用程序上使用Mongoid和MongoDb? 最佳答案 查看IndexesMongoDB文档和IndexingAdviceandFAQ,这里有很多很棒的信息。 关于ruby-on-rails-何时索引,在Mongoid中索引什么?,我们在StackOverflow上找到一个类似的问题: https

ruby-on-rails - 在 mongoid 中查询包含哈希的数组字段

我有一个这样的模型classUserincludeMongoid::Documentfield:c,as::categories,type:Arrayend我在上面存储信息是这样的:a=UserCheckin.newa.c=[{id:rand(1000),name:'a'},{id:rand(1000),name:'b'},{id:rand(1000),name:'c'}]a.save我不知道我是否通过在其上存储哈希来滥用数组类型,但问题是mongodb并没有提示它。如何查询类别名称为“a”或类别ID大于2的用户之类的内容?提前致谢, 最佳答案

ruby - Mongoid:根据嵌入文档数组的大小进行查询

这与这里的这个问题类似,但我不知道如何将其转换为Mongoid语法:MongoDBquerybasedoncountofembeddeddocument假设我有客户:{_id:...,订单:[...]}我希望能够找到所有具有现有订单的客户,即orders.size>0。我尝试过像Customer.where(:orders.size.gt=>0)这样的查询>无济于事。可以用exists?操作符来完成吗? 最佳答案 我更好的方法是使用MongoDB的native语法,而不是像您链接到的问题的已接受答案中所指出的那样诉诸方法或JavaS

ruby-on-rails - mongoid 中的货币表示

我应该如何使用Money使用MongoID?我应该将其配置为BigDecimal吗?在rails级别?对于ActiveRecord,我们有一个叫做Money的东西,但AFAIK它只支持AR 最佳答案 我也遇到了这个。不幸的是,BigDecimal以字符串形式存储在Mongodb中,因此它不会像float或整数那样让您对其求和、排序等。整数似乎是以美分存储值的方法,可能使用Moneygem对其进行抽象:https://github.com/RubyMoney/money我认为,Mongo在大多数现代机器上使用64位存储int,因此即使

ruby-on-rails - 使用 id 作为标准时的 Mongoid where vs find

当在我的查询中使用文档的id作为唯一标准时,两者之间有什么区别:Board.only(:_id).find(params[:board_id])和Board.where(_id:params[:board_id]).only(:_id)我唯一注意到的是,当使用方括号将结果括起来时,将结果打印为json 最佳答案 find返回一个文档。where返回符合条件的文档数组。 关于ruby-on-rails-使用id作为标准时的Mongoidwherevsfind,我们在StackOverflo

ruby-on-rails - Mongoid "no geo index :("错误

重现步骤:classVenuefield:coordinates,type:Arrayindex({coordinates:'2d'},{min:-180,max:180})end已经运行rakedb:mongoid:create_indexes尝试调用:Venue.geo_near([@lat,@long])得到:Moped::Errors::OperationFailure:Theoperation:#"venues",:near=>[43.670906,-79.393331],:query=>{},:spherical=>true}@fields=nil>failedwither

ruby-on-rails - 删除 mongoid 中的嵌入文档

我有一个只有名称字段的项目模型,其中还有与line_items的嵌入关系。类项目包括mongoid::document字段:名称embeds_many:line_items结束classLineItemincludemongoid::documentfield:titleembedded_in:project,:inverse_of=>:line_itemsend我想这更像是mongo驱动程序的问题:如果我有这样的文件db.project.find()[0]{_id:123,name:"housework",line_items:[{title:"cleanfridge",_id:60

ruby-on-rails - 继承的资源和 Mongoid

有没有人成功使用Rails3,Mongoid和InheritedResources在职的?实现它的任何提示?我很想同时使用这两种gem。目前我遇到了:undefinedmethod`scoped'关于索引操作。谢谢!顺便说一句,作用域问题的解决方法是像这样覆盖集合:classCampaignsControllerparams[:page])endend但我正在寻找更全面的方法 最佳答案 如果您只使用mongoid,您应该做的是覆盖InheritedResources中的默认集合行为。默认行为是这样的:https://github.c