jjzjj

ruby-on-rails - 添加继承后检索现有的 MongoDB 集合

我使用Mongoid作为我的数据库包装器。我有一个没有继承的模型和集合中的数千个文档。然后我重构它以从基类继承。现在我无法检索原始数据。我在查询类或基类时没有看到它。我应该如何处理这个变化?我看到Mongoid确实允许继承并将所有文档存储在父集合中,然后添加一个“_type”字段以进行类型区分。我是否应该将数据迁移到临时集合、部署代码更改,然后将临时数据迁移到新的基础集合并设置_type字段?谢谢 最佳答案 决定只将生产转储到我的本地数据库。然后将文档复制到新的基类集合并验证_type是否已设置。然后最终将其恢复生产。

ruby-on-rails - 从rails控制台连接到不同服务器上的mongodb

我已经在ec2实例上部署了我的Rails应用程序,使用的数据库是Mongo并托管在一个单独的实例上。mongoid.yml中的数据库和主机已相应更改,指向数据库服务器。该应用程序正在生产模式下运行并且运行良好。当我在生产模式下访问Rails控制台时,$railscRAILS_ENV=production并尝试访问模型User.last。它给出了错误LoadingRAILS_ENV=productionenvironment(Rails3.2.11)1.9.3p327:001>User.lastMongoid::Errors::NoSessionsConfig:Problem:Noses

ruby-on-rails - 当我有 Mongoid 时,Heroku 要求 PG gem

我收到以下错误Pleaseinstallthepostgresqladapter:`geminstallactiverecord-postgresql-adapter`(pgisnotpartofthebundle.AddittoGemfile.)(LoadError)每当我访问我的heroku应用程序中的页面时。我不知道为什么会这样,因为我在我的应用程序中使用了MongoDB和Mongoid。我还添加了MongoLabStarter作为heroku插件来修改MongoDB的应用程序。我删除了我的GemFile.lock并再次安装了捆绑软件。我的GemFile是source'https

ruby-on-rails - 在 map reduce 之前对 mongoid 集合进行排序

我如何在对其执行mapreduce操作之前对集合进行排序?假设我有这个收藏:{a:1,b:1},{a:2,b:2},{a:3,b:e},{a:1,b:7}现在,我想按a的值排序并返回b的总和我只需要x结果(按a排序)。我如何按a排序第一的?在mongo我可以这样做:mapReduce(map,reduce,{sort:{a:1}})我怎样才能在mongoid上做到这一点?它只接受map_reduce的2个参数功能。 最佳答案 检查这个问题后,我发现了两种方法:1-使用native驱动程序,例如:db=Mongoid::Session

ruby-on-rails - Papaerclip 不适用于更新方法

我有人模型:classPersonincludeMongoid::DocumentincludeMongoid::MultiParameterAttributesincludeMongoid::Paperclipattr_accessible:photo,:namehas_mongoid_attached_file:photo,:styles=>{:thumb=>"100x100>"},default_url:"/images/:style/missing.png"field:photofield:nameend在ManagedbController的更新操作中,我做了:defedit

ruby-on-rails - 无法在 mongoid 模型保存时将 Fixnum 转换为 String

我在ruby​​onrails上使用mongoid的保存选项,它给我一个错误can'tconvertFixnumintoString我的模型文件是产品.rbclassProductincludeMongoid::DocumentincludeMongoid::TimestampsincludeMongoid::Versioningfield:product_role,:type=>Stringfield:status_id,type:Moped::BSON::ObjectIdfield:status_name,type:Stringend状态.rbclassStatusincludeM

ruby-on-rails - Rails/MongoDb 搜索和优化搜索实现

我的应用程序中有一个搜索功能,其工作方式如下主页:用户从下拉列表中选择位置,然后输入搜索关键字并搜索以获得一组结果搜索页面(优化搜索选项):一旦用户从上方点击此页面,他将获得更多选项来优化搜索并缩小结果范围。现在我们正在实现如下,但我假设随着参数增加超过5-7,组合的数量也会增加if-else-elseif语句的数量。#refinesearch@search=params[:search]ifparams[:city].present?&¶ms[:location_ids].present?&¶ms[:search].blank?@blood_banks=BloodBa

mongodb - 如何在不先找到的情况下使用 Mongoid 执行批量更新?

我有一个这样的哈希数组:[{id:123,color:'red'},{id:456,color:'green'}]我知道如何一次获取和更新一个:params[:my_documents].eachdo|doc|MyDocument.find(doc[:id]).update_attributes(color:doc[:color])end...但我怀疑性能不是很好。我想找到一种可以将数据直接传递给Mongoid/MongoDB的方法,这样我就可以更新每个文档,而不必为了更新几个字段而查找和实例化每个文档。如何使用Mongoid执行批量更新而无需先获取它们?

ruby - 通过引用文档进行 Mongoid 查询

什么是mongoid/ruby语法:我想查询一个Parent包括所有Children(急切地)通过一些独特的Child属性(不是_id).classParentincludeMongoid::Documentfield:first_name,:type=>Stringfield:last_name,:type=>Stringhas_many:children,:class_name=>'Child',:inverse_of=>:parentendclassChildincludeMongoid::Documentfield:first_name,:type=>Stringfield:l

ios - 如何在 XCode 中创建 MongoID

我需要在XCode中创建一个MongoId,因为我使用该MongoId作为名称将文件上传到我的服务器。然后,如果文件上传成功,我会向我的服务器添加一个条目,说明照片是使用该MongoId上传的。我只需要在XCode中生成十六进制字符串。有什么办法吗?谢谢 最佳答案 只需使用下面的代码创建一个UUID,然后切断字符串的最后部分,使其与mongoId的长度相同。这是目前的解决方法,但可以完成工作。-(NSString*)uniqueFileName{CFUUIDReftheUniqueString=CFUUIDCreate(NULL);