Tag: mongodb

Mongoid / Mongodb和查询嵌入式文档

我有Author和Book模型。 Author有许多嵌入式Books 。 我可以查询嵌入式Books ,还是首先要获取Authors以获取Books ?

ActionDispatch :: Routing :: RouteSet#调用Rails 4.1真的很慢

我搜索了几天但找不到这个问题的任何相关答案。 在Heroku上托管的我的Rails 4.1应用程序中,当负载增加时,一些PUT请求变得非常慢。 今天最慢的是53秒。 所有没有数据库(MongoDB)注册任何慢查询。 通常这个请求需要0.3ms,所以非常快。 无论有效载荷是什么,请求都很慢。 在安装New Relic后,它更清楚了解情况,但我仍然不知道在哪里解决这个问题。 控制器中的代码很快,但根据New Relic,速度慢的是ActionDispatch :: Routing :: RouteSet #call 这是New Relic报道的转储: Slowest components Count Duration % ActionDispatch::Routing::RouteSet#call 1 53,000 ms 100% Plugin::FetchablesController#update 1 38 ms 0% Rails::Rack::Logger#call 1 1 ms 0% ActionDispatch::Cookies#call 1 1 ms 0% ActiveSupport::Cache::Strategy::LocalCache::Middleware#call 1 0 ms 0% Rack::Runtime#call 1 0 ms 0% Total 53,000 […]

rails mongoid标准通过关联找到

我正在尝试通过关联的用户名来查找记录,该用户名包含在belongs_to关系中,但它不起作用。 文章属于用户用户有很多文章 Article.where(user_id: someid)工作正常,但我想使用用户名作为参考,存储在Users表中。 Article.includes(:user).where(:username => “erebus”) Article.includes(:user).where(“user.username” => “erebus”) 我也有identity_map_enabled: true Article.includes(:user).inclusions返回关系详细信息 不起作用,我不理解什么?

如何从rails应用程序上的ruby获取mongodb数据库和集合列表的列表

我正在使用Rails 3和Mongoid gem。 但我需要用mongodb数据库列表填充一个combobox。 在mongodb shell中,我们可以使用“show dbs”命令列出数据库。 mongodb驱动程序中还有getDBNameList()和db.getCollectionNames()命令。 但我无法弄清楚如何在rails应用程序上使用来自ruby的这些命令。 我也在想; 如果我可以使用mongoid gem获取数据库和集合列表。 因为我确信我已经读过mongoid支持使用多个数据库,但我认为它依赖于模型。 所以你怎么看; 有什么解决方案,或者我必须使用mongo-ruby-driver gem,而不是mongoid。

Rails:将加密数据存储在数据库中

我想加密数据库,因为存储了机密数据。 我用mongodb和mongoid。 这种数据库有可能吗? 如果不是,你可以提出哪些替代方案? PS主要目的是:如果有人破解服务器并窃取数据库,那将是无法加密的。 更新:感谢nickh ,我发现ActiveRecord有很多灵魂,但Mongoid和其他Mongo clinets没有。 为Mongo和Mongoid找到一些灵魂会很棒!

查询Mongoid / rails 3中的嵌入对象(“低于”,Min运算符和排序)

我正在使用带有mongoid的rails 3。 我有一个股票的集合与嵌入的价格集合: class Stock include Mongoid::Document field :name, :type => String field :code, :type => Integer embeds_many :prices class Price include Mongoid::Document field :date, :type => DateTime field :value, :type => Float embedded_in :stock, :inverse_of => :prices 我想得到自给定日期以来最低价格低于给定价格p的股票,然后能够对每种股票的价格进行排序。 但看起来Mongodb不允许这样做。 因为这不起作用: @stocks = Stock.Where(:prices.value.lt => p) 此外,似乎mongoDB无法对嵌入对象进行排序。 那么,有没有替代方案来完成这项任务? 也许我应该将所有内容放在一个集合中,以便我可以轻松运行以下查询: @stocks = Stock.Where(:prices.lt => p) 但我真的想在我的查询之后得到按股票名称分组的结果(例如,具有一系列有序价格的不同股票)。 […]

失败,错误10068:“运算符无效:$ oid”

刚更新到最新版本的mongoid(3.1.0)和sidekiq(2.7.2) 现在我收到错误: failed with error 10068: “invalid operator: $oid” 从查看代码我看到一个像这样的选择: @selector={“_id”=>{“$oid”=>”[some id]”}} 什么可以在这里出错?

在rails app中使用mongoid的Mongo查询导致游标超时错误

我在我的rails应用程序中有一个mongo查询,因为该集合非常庞大。 FbCheckin.where(ext_fb_place_id: self.ext_fb_place_id).all 我从文档中读到,您可以添加一个timeout选项,以防止光标timeout ,并显示以下消息: Moped::Errors::CursorNotFound: The operation: “GET MORE” failed with error 我尝试了几种方法,包括 FbCheckin.where(ext_fb_place_id: ext_fb_place_id, {:timeout=>false}).all 和 FbCheckin.find(ext_fb_place_id: ext_fb_place_id, {:timeout=>false}).all 但这些都不会阻止光标超时。 有没有人知道如何进行此查询并收集所有FbCheckins而不事先将光标超时? 谢谢

Rails&Mongoid独特的结果

考虑下面的mongo集合示例: {“_id” : ObjectId(“4f304818884672067f000001”), “hash” : {“call_id” : “1234”}, “something” : “AAA”} {“_id” : ObjectId(“4f304818884672067f000002”), “hash” : {“call_id” : “1234”}, “something” : “BBB”} {“_id” : ObjectId(“4f304818884672067f000003”), “hash” : {“call_id” : “1234”}, “something” : “CCC”} {“_id” : ObjectId(“4f304818884672067f000004”), “hash” : {“call_id” : “5555”}, “something” : “DDD”} {“_id” : ObjectId(“4f304818884672067f000005”), “hash” : {“call_id” : “5555”}, “something” : […]

heroku mongohq和mongoid Mongo :: ConnectionFailure

2012年6月9日更新: 在heroku上使用mongoid 3.0.0.rc进行设置,请参阅此要点: https ://gist.github.com/2900804 2011年1月22日更新: Uri现在优先于mongoid.yml https://github.com/mongoid/mongoid/issues/issue/266 更新2010年8月12日:虽然我得到了Jackues Crocker的第6个可接受的答案,但是这个问题的某些方面很容易搞砸! 它再次发生在我身上,我决定研究mongoid源代码。 所以,在这里: 目前, 主机:端口:名称/数据库:设置在uri:设置上取得了优先权 。 因此,由于对localhost:xxxx的请求而不是对flame.local.mongohq.com:xxxx的请求,发生了非常无法提供信息的错误消息 这会打破! defaults: &defaults host: localhost <- THIS 'OVERWRITES' host in the uri! production: <<: *defaults <- BE CAREFUL WITH WHAT YOU BRING IN. THE host: FROM DEFAULTS WILL BE THE ONE APPLIED, not your uri host. uri: 修复它,删除主机:默认情况下,和/或删除<<:*默认值 原文问: […]