草庐IT

mongoid3

全部标签

ruby-on-rails - Mongoid:before_destroy 和 Paranoia

Mongoid有软删除的回调吗?因为before_destory不会被触发。现在我想我可以使用before_update但它看起来不是我想要的那么清晰的解决方案并且它也没有被触发classMessageincludeMongoid::DocumentincludeMongoid::TimestampsincludeMongoid::Paranoiabefore_update:some_actionprivatedefsome_actionifself.deleted_at_changed?...#domystuffendendend所以唯一的解决方案是从Controller中的销毁操作

ruby-on-rails - Mongoid:按字段排序并跳过N条记录

我有一个包含以下数据的集合:{"_id":ObjectId("516b969beceaed363a000027"),"user":"276","item":"796","rating":1,}我想按user排序,然后在每个用户中,我想跳过前10条记录,只返回其他记录。如果用户没有10条记录,则不应返回任何内容。我还需要反过来:按用户排序,只返回前10条记录。如果用户没有10条记录,它应该返回例如6条记录。我不知道如何在不调用ruby​​脚本的情况下在Mongoid中执行此操作。有什么想法吗? 最佳答案 假设您已经定义了一个映射到该集

ruby - 通过 Mongoid ORM 将 UTF8 兼容字符串保存到 MongoDB 时,字符串无效 UTF-8 (BSON::InvalidStringEncoding)

我正在为我的ORM使用Mongoid将数据从MySQL表导入MongoDB。尝试将电子邮件地址另存为字符串时出现错误。错误是:/Library/Ruby/Gems/1.8/gems/bson-1.2.4/lib/../lib/bson/bson_c.rb:24:in`serialize':StringnotvalidUTF-8(BSON::InvalidStringEncoding)from/Library/Ruby/Gems/1.8/gems/bson-1.2.4/lib/../lib/bson/bson_c.rb:24:in`serialize'来self的GUI-这是表格信息的屏

ruby-on-rails - 带有 "Foreign Key"的 Mongoid

作为mongodb的老手,我创建了如下结构:User:{name:str,email:...}Gift:{#authorandreceiverrefertoUserobjectsobviouslyauthor:object_id(...),receiver:object_id(...),name:str...}我想在mongoid中正确映射它:classUserincludeMongoid::Documenthas_many:giftsendclassGiftincludeMongoid::Documentbelongs_to:userend但是,映射不正确。g=Gift.first;

ruby-on-rails - Mongoid:选择适合多个选项的嵌入对象

我有这个结构classHouseincludeMongoid::Documentembeds_many:inhabitantsendclassInhabitantincludeMongoid::Documentembedded_in:housefield:namefield:genderfield:ageend我可以得到所有女性居住的房子:houses=House.where("inhabitants.gender"=>"female")但是我怎样才能得到所有50岁以下女性居住的房子呢?如何为嵌入对象指定多个条件? 最佳答案 要对数

ruby-on-rails - Rails3/Mongoid - 基本数据库 :seed with embedded documents

我在Rails3.1中使用MongoID。我想播种我的数据库(在开发和生产中)。我有一个嵌入了Feed的页面模型。为每个页面植入嵌入式提要的最佳方式是什么?我可以轻松地为所有页面数据播种,而不是嵌入的提要。请注意,我正在寻找这些页面/提要的实际唯一数据,而不仅仅是任意测试数据。谢谢!page.rb(模型)...embeds_many:feedsfeed.rb(模型)classFeedincludeMongoid::Documentfield:source,:type=>Stringfield:user,:type=>Stringembedded_in:page,:inverse_of=

ruby-on-rails - 在 mongoid 上进行全文搜索所需的建议

我有一个mongoidembeddedonetomanyRails3.1上的模型,可在其中进行全文搜索。我也需要在heroku上部署一些非常轻便和简单的东西,最初无需支付附加组件的费用。目前所有的heroku全文搜索附加组件,似乎都只有付费计划(一开始并不好),请参阅FlyingSphinx和Websolr。我需要有关好的解决方案(可部署在heroku上的ruby​​gem)的建议,以开始并最终扩展到其他云服务。 最佳答案 也许MongoDB的核心功能足以满足您的需求:http://www.mongodb.org/display/D

ruby-on-rails-3 - 带有 Mongoid Embedded 和 Standalone 的 Rails 模型

我如何创建一个能够保存在自己的集合中并嵌入到另一个文档中的Mongoid模型? 最佳答案 简短的回答:你不能。当您在两个Mongoid文档之间使用嵌入关系时,这是因为您不希望子模型在其自己的集合中。嵌入式文档字面意思是:嵌入在其父级中。我不确定您是否是Mongoid的新手,所以您实际上可能正在寻找的是引用关系,它的行为更像传统的RDBMS关系,其中子文档存储对父文档ID的引用.Mongoid文档以here开头.鉴于这些嵌入式模型,在两者之间切换非常容易:classPersonincludeMongoid::Documentfield

ruby-on-rails - Mongoid 查询 has_many

我有一个相当简单的mongodb模型目前有2个收藏学生类(class)(嵌入主题)classStudent我知道mongoid不支持直接查询has_many即Student.courses所以如果我想获得学生科目是唯一的方法@student=Student.firstCourse.find(@student.courses).subjects目前执行3个查询MOPED:127.0.0.1:27017QUERYdatabase=testcollection=usersselector={"$query"=>{"_type"=>{"$in"=>["Student"]}},"$orderby

ruby - 如何查询mongoid 'not_in' 'greater than'

如果我想搜索一个属性大于100的mongoid模型,我会这样做。Model.where({'price'=>{'$gt'=>100}})如何搜索没有属性大于100的mongoid模型?试过这个但失败了。Model.not_in({'price'=>[{'$gt'=>100}]})附加信息:归根结底,我想像这样进行查询:criteria={'price'=>[{'$gt'=>100}],'size'=>'large','brand'=>'xyz'}Model.not_in(criteria)因为标准是动态创建的。 最佳答案 属性不大于