我存储用户事件数据:当用户访问当前文章、主题或个人消息时,以显示他在离线时添加了多少新评论和消息。classSiteActivityincludeMongoid::DocumentincludeMongoid::Timestampsbelongs_to:userbelons_to:activity,polymorphic:trueend在这种情况下,我为每个文档存储一条记录。另一种选择是使用嵌入式文档,因此所有用户事件都将存储在一个文档中:classSiteActivityincludeMongoid::Documentbelongs_to:userembeds_many:user_a
是否可以将自定义javascript传递给Mongoid,类似于事件记录中的find_by_sql或update_all?我想到的特殊情况是我想在一堆符合条件的文档上inc一个字段。看起来这在MongoDB中是可行的:http://www.mongodb.org/display/DOCS/Updating#Updating-ModifierOperationsdb.people.update({name:"Joe"},{$inc:{created_at:-1}});但我不认为Mongoid允许它(它似乎一次只允许你inc一个文档)。而他们的update_all方法我相信只能用$set。
我可以从“mongos”控制台发起查询,并查看读取命中初选。我可以成功执行rs.slaveOk();然后触发相同的查询,并看到读取命中辅助节点。问题是无论我尝试什么,我都无法在Mongoid中获得查询击中次级。它似乎没有发送slaveOk。我试过在mongoid.yml中设置read::secondary,我也试过read_secondary:true,但底层连接是不是副本集,所以我想这就是mongoid忽略它的原因。有没有其他方法(除了创建我自己的连接池和设置:slave_ok)让mongoid工作?我是否缺少一些神奇的未记录的yml设置? 最佳答案
所以我使用MongoDB(与MongoidRubyGem)已经有一段时间了,随着我们的应用程序的增长,我注意到随着我的数据的增长,请求花费的时间越来越长,这是一个典型的请求我的应用程序看起来像,但它需要大约500毫秒,仅用于数据库内容。这里没什么特别的,只是一些Controller的东西:StartedGET"/cities/san-francisco?date_range=past_week"for127.0.0.1at2011-11-1511:13:04-0800ProcessingbyCitiesController#showasHTMLParameters:{"date_ran
是否可以在一对一关系的belongs_to端使用mongoid“nestedattributes”?例子:classBar1includeMongoid::Documentbelongs_to:bar2accepts_nested_attributes_for:bar2end当我尝试访问嵌套属性时,出现以下异常:NoMethodError:undefinedmethod`bar2_attributes'我的主要目标是使用“嵌套属性”功能来缓存引用的文档属性。我做错了什么? 最佳答案 当您应该使用数组访问方法时,您可能会尝试像Clas
我有一个盒子,里面有很多不同类型的玩具:classBoxembeds_many:toysendclassToyfield:nameembedded_in:boxendclassCar如果我找到了我想要的特定盒子对象,我该如何查询它以仅找到汽车?my_box.toys.where(???Car???)显然,我可以遍历每个玩具并提取toy.is_a?Car,但我正在寻找一种解决方案,如果存在的话,它只使用内置的mongoid标准/查找器。 最佳答案 这是个好问题。幸运的是Mongoid曾经在文档中存储_type元属性来处理这些场景所以你
我们的mongodb数据库中有一个名为“failed?”的字段,包括问号。有时当我访问那个字段时,我得到的是数据库中的值,有时我得到的是空值。为了调试它,我希望了解应该发生什么。那么,您能否在模型的字段名称中使用问号,如下所示:field:failed?,:type=>Boolean,:default=>nil还是我陷入了麻烦的世界。假设我已经在数据库中有了这个并且必须使用它,我应该如何取出这些字段。环境:Rails3.1、JRuby、Mongoid。 最佳答案 这很可能是Mongoid错误,因为字段名称中的问号在MongoDB中是
我在使用mongoid进行排序时遇到问题。我正在使用voteable_mongo收集对给定对象的投票,现在我想根据这些进行排序,但我没有任何运气:它在模型上提供了一个类似这样的字段,并有一个名为votes_point的方法:{"count"=>1,"down"=>[BSON::ObjectId('4f450fd725ae0b7538000002')],"down_count"=>1,"point"=>-1,"up"=>[],"up_count"=>0}代码:@word.definitions.order_by([:votes_point]).eachdo|definition|或@wo
我目前在我的Rails应用程序中使用mongodb。我使用mongoid作为ODM,并使用sunspot_mongo。当我尝试重建索引时,出现以下错误。>rakesunspot:reindexrakeaborted!undefinedmethod'find_in_batches'forArticle:Class即使我使用mongo_mapper而不是mongoid,我也面临同样的问题 最佳答案 使用:rakesunspot:mongo:reindex行得通。但是使用mongoid的sunspot中的重建索引API有一点问题。
当我执行这个查询时:User.where(:comments.size=>10)我收到以下错误:undefinedmethod`size'for:comments:Symbol但是根据这里的文档:http://mongoid.org/docs/querying/criteria.html这应该是可能的。那么,为什么会出错?注意:'comments'是独立于User的集合,具有'has_and_belongs_to_many'关系。我正在使用mongoid3.0.0和bson_ext1.6.1提前致谢! 最佳答案 这在用户嵌入评论时有