草庐IT

ruby-on-rails - Mongoid 持久性问题

我试图在我的Rails应用程序中分配一个属性,但是,当我重新查询数据库时,分配的数据消失了。这是我的模型:classScentincludeMongoid::Documentfield:scentid,type:Integerfield:namefield:pricefield:categoryfield:descriptionfield:available,type:Booleanbelongs_to:orderembedded_in:cartitemattr_accessible:name,:price,:category,:availableendclassCartiteminc

ruby-on-rails - 在 Ruby on Rails 中的 MongoDB 中搜索两个条件

我正在使用railscast视频http://railscasts.com/episodes/240-search-sort-paginate-with-ajax.我必须使用两个条件在我的数据库中进行搜索。#Inmyformforsearch'get',:id=>"products_search"do%>nil%>对于一种情况,这工作正常:#Inmymodelproduct.rbdefself.search(search)ifsearchwhere(name:/#{Regexp.escape(search)}/i)elsescopedendend#Inmycontrollerprodu

mongodb - 在 Mongoid 3.0 中运行时切换数据库

我有一个在Unicorn上运行的Sinatra应用程序,它的模型使用Mongoid。我有几个结构相同但内容不同的Mongo数据库,我会在每个用户登录时为他/她选择正确的数据库。我想知道Mongoid3.0是否可以做到这一点。 最佳答案 如果要切换数据库,使用Mongoid.override_database,它是线程安全的。Mongoid.override_database("client_db_name")#改变数据库Mongoid.override_database(nil)#重置数据库例子:classApplicationCo

ruby-on-rails - 按键搜索 Mongoid 哈希字段

当我实现它时,我认为这会很简单,但是在大量搜索、谷歌搜索和扫描文档之后,我似乎找不到答案。我有一个哈希字段,其中键是id,值是其他id的数组。例如:{"52ab84929938c7f966d4f116"=>["52ab84919938c7f966d4ee7d"],"52ab84929938c7f966d4f117"=>["52ab84919938c7f966d4ee7d"],"52ab84929938c7f966d4f0cc"=>["52ab84919938c7f966d4ee7d","52ab84929938c7f966d4f13d"],"52ab84929938c7f966d4f1

ruby-on-rails-3 - 使用 Rails 和 Mongoid 模拟连接行为

只是想在使用mongodb构建数据库时询问一些建议,我已经阅读了很多,如果你有一个有很多连接的数据库,那么最好使用postgresql。因此,如果我想要灵active并且需要多次连接我的数据,我应该使用Postgresql吗?我知道mongodb具有快速读/写但需要多次查询以模拟连接。那么这什么时候会成为性能打击呢?mongodb是否限制了您在以前不存在的数据上创建新的复杂关系的能力?我想mongodb的吸引力在于它的javascript语法和与json的相似性:) 最佳答案 我将从头开始:Iguesstheattractivene

mongodb - Mongoid::Versioning - 如何检查以前的版本?

我在基于Mongoid的类中包含了Mongoid::Versioning模块。检查文档的先前“版本”或化身的最佳方法是什么?我希望能够看到它的历史。这可以通过railsconsole或MongoDBshell。查看文档历史记录的最简单方法是什么? 最佳答案 Mongoid::Versioning模块在文档中添加了一个名为version类型为Integer的字段,该字段记录了当前文档的版本,从1开始,到最大值(如果已定义)。此外,您将拥有一个将创建的嵌入式文档“版本”。然后有一个before_save回调,它会为您处理版本控制。通常我

ruby-on-rails - Rails 3 和 Mongoid : Embedded documents validation

因此,我在嵌入式文档中遇到了一些用户身份验证问题。我有两个文档,一个嵌入另一个。一个企业有很多成员。模型看起来像这样:classMemberincludeMongoid::Documentfield:username,type:Stringfield:password,type:Stringembedded_in:businessvalidates:username,:presence=>true,:uniqueness=>true,:length=>5..60endclassBusinessincludeMongoid::Documentfield:name,type:Stringe

mongodb - Mongo 使用带排序的索引

我正在尝试优化mongodb查询。我在from_account_id、to_account_id和created_at上有一个索引。但以下查询会进行完整的集合扫描。{"ts":{"$date":"2012-03-18T20:29:27.038Z"},"op":"query","ns":"heroku_app2281692.transactions","query":{"$query":{"$or":[{"from_account_id":{"$oid":"4f55968921fcaf0001000005"}},{"to_account_id":{"$oid":"4f55968921fc

mongodb - 将现有的 MongoDB 字符串属性转换为 BSON::ObjectId

我在MongoDB中有一个文档集合,其中有一个属性被存储为字符串,如果它被保存为BSON::ObjectId会更好。集合名称为foo,字段名为bar。让每个字段bar将其现有值转换为BSON::ObjectId实例的最佳方法是什么? 最佳答案 你是这个意思吗?(你有一个字符串,它是一个ObjectId的十六进制,你想把它变成一个ObjectId)>db.foo.insert({bar:newObjectId().str});>db.foo.insert({bar:newObjectId().str});>db.foo.insert(

mongodb - mongoDB 中具有时间间隔的增量 MapReduce

我以10分钟的时间间隔从服务器获取了一些记录(在1小时内我将获取6个文件)我想在接下来的几个小时内每1小时做一次mapreduce我将不得不对6个文件和最后几个小时的文件进行下一组的mapreduce我将如何解决这个问题?帮我我混淆了过去1个月谢谢苏希尔·克尔·辛格 最佳答案 为了按小时汇总您的10分钟日志文件,您可以在map函数中将每个日志文件的时间戳舍入到最接近的小时,并在reduce函数中按小时对结果进行分组。这是一个小的虚拟示例,它从mongoshell中说明了这一点:创建100个日志文件,每个间隔10分钟并包含一个0-10