问题标签 [moped]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - moped 的(Ruby mongodb 驱动程序)remove_all 操作是后台操作吗?
它立即返回,我不完全确定预期的行为是什么。是否在后台删除?
ruby-on-rails - 连接突然出现问题
我有一个使用 MongoDb 的 Rails 4.0 应用程序。我使用 Mongoid 作为 ORM。直到今天下午,一切正常。
突然,我收到了随机的超时错误。
首先来自 MOPED 的消息:
然后一个
看源码,好像是连接池代码的某个地方有问题,但我对它还不够熟悉,不敢说。
有人对这个问题有任何经验吗?
ruby-on-rails - Mongoid / Moped 日期类型插入失败
该问题涉及 mongoid / moped DATE 类型插入。我的代码如下
引发错误
为什么 Date 类型无法通过 moped 插入 mongoDB?我很确定 mongoDB 确实支持 Date 类型。
感谢您的帮助。
ruby-on-rails - 为什么相同的助力车查询有时需要更长的时间?
当请求 ruby on rails 网页时,有时数据库查询需要 2-4 倍的时间。我已经为 Moped 启用了调试日志记录,并看到了这样的行:
编辑查询和标志,这是时间上的差异:
我想知道为什么 Moped 有时使用 IP 127.0.0.1 而有时使用 IP 54.213.xxx.xx?为什么查询 54.213.xxx.xx 需要 2-4 倍的时间?为了生成这些日志条目,我只是刷新了一个网页。
理想情况下,我希望所有查询花费 ~40ms 而不是偶尔花费 ~160ms。
mongoid.yml
如果相关,这是我的:
副本集中有两个 mongo。localhost:17203(或 54.213.xxx.xx)上的那个是次要成员。xxx.no-ip-.biz 解析为 174.21.xxx.xxx 所以我知道我的主要成员没有被用于读取(如我所料)。
ruby-on-rails - Moped::Errors::ConnectionFailure: 无法连接到任何辅助或主节点
我一直在尝试配置 MongoDB (Mongoid) 以在我的 Rails 应用程序中工作,但我很无助,因为我已经尝试了几乎所有我可以在网上找到的东西,但每次我的代码中有数据库行时,我都会收到此错误消息。我的应用程序的 repo 在这里,完整的消息是这样的:
更新:根据@BrandonBlack 的建议,在 mongo shell 上运行 rs.status(),得到了这个:
{ "ok" : 0, "errmsg" : "not running with --replSet" }
ruby-on-rails - 使用 Sidekiq 处理作业时出现 Mongoid/Moped 错误
在运行 Sidekiq 时,我看到大量作业失败,这些作业都与我的 Mongo 数据库的连接问题有关。我正在用大量负载对机器进行压力测试,因此我排队了超过 18,000 个作业,每个作业在失败时重试 5 秒。一些工作(我猜是那些能够成功检索连接线程的工作人员)工作得很好。然后我有很多其他人有这样的错误:
还有超时错误,如下所示:
请注意,我正在运行带有从https://github.com/mongoid/mongoid的主分支签出的 Mongoid 代码的 Rails 4 。根据我的阅读,以前版本的 Mongoid 需要在完成 Sidekiq 作业处理时显式关闭连接。Mongoid 4 应该自动执行此操作。我无法确认它是否正在这样做。当作业排队太快连接不可用或超时时,问题似乎是双重的。一些工人成功地打开了连接。有些作业必须等到重试才能解析。
我不完全确定这里最好的解决方案是什么。如果我慢慢地排队工作,一切都会很好。不幸的是,这不是应用程序在现实世界中的运作方式。
我如何确保我的 sidekiq 工作获得完成工作所需的 Moped/Mongoid 连接,或者等到有一个可以处理?由于这个问题,看到了大量的异常/错误。下面是常见的重复错误的堆栈跟踪:
** 更新 **
如果我将 sidekiq 工作人员的数量减少到 10 个左右,那么问题就不会发生了——仅仅是因为只有 10 个线程在运行的情况下打开与 MongoDB 的连接的工作人员较少。必须有一种方法可以在 sidekiq 中为 Mongoid/Moped 使用连接池。由于 Rails 负责建立和断开连接,我不知道如何实现这一点。
** 更新 2 **
当我把它指向我们的生产服务器时,它变得更糟了 10 倍。几乎每个线程都是一个Timeout::Error
. 有些人通过了,但根本没有多少。这太可怕了。当 MongoDB 在本地时,至少可以通过将 sidekiq 限制为 10 个工作人员来“解决”这个问题。但这不是一个现实的用例,我需要能够连接到另一台机器上的数据库。
mongodb - 带有 Rails 4 的 Mongoid - 无法连接到主节点...已解决_地址 = nil
我在本地安装了 MongoDB,并在尝试在 Rails 4 / Ruby 1.9.3 / Windows 7 上使用 Mongoid/Moped 时遇到此错误:
可能是由resolved_address=nil引起的- 其他论坛表示这是由于 hosts 文件中的拼写错误 - 知道这个文件在 Windows 上的位置吗?
应用程序只包含一个简单的模型“文章”
异常被捕获在Articles.all.each.do |article|
...
在应用程序之外运行 mongod 和 mongo shell 工作正常 - 所以我假设它与配置有关......我的 Rails 服务器日志吐出以下内容:
据我所知,我没有对副本集做任何事情。
Rails.env 是development
,我的配置文件(mongoid.yml)是:
Mongoid 可能还没有正式为 Rails 4 做好准备——但是有没有人幸运地跨越了这个障碍?
mongodb - Mongoid/Moped 无效的月份日期得到保存
我想要验证包含无效日期的日期时间。我正在使用带有 Rails 4 的 Mongoid 4alpha2,在我的模型上我有一个
field :date_of_birth, type: DateTime
当我从控制器为具有“1988/02/30”的 date_of_birth 进行常规“创建”时,模型会以“1988/03/1”的 date_of_birth 保存,而不是像常规 DateTime 那样出现 DateInvalid 错误。 new(1988,2,30) 将在 rails 控制台中。我不确定 moped 或 mongoid 是否绕过了 DateTime 上的 Rails 验证,还有其他人遇到过这种情况吗?
这是rails日志
Started POST "/drivers" for 127.0.0.1 at 2014-01-16 10:42:40 -0500
Processing by DriversController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"LiKx1ZToNVtNL9FAEgyLNNWW7mABy2BPKPwVVcTtXKk=", "driver"=>{"field_worker_name"=>"Field Worker", "hack_number"=>"38924", "first_name"=>"test", "middle_initial"=>"", "last_name"=>"testing", "date_of_birth"=>"1988/02/30", "gender"=>"", "nationality"=>"", "language"=>"", "street"=>"something", "apartment_number"=>"", "city"=>"something", "state"=>"NY", "zip_code"=>"02398", "cell_phone"=>"", "other_phone"=>"", "email"=>"", "dmv_number"=>"", "state_of_residence"=>"", "has_health_insurance"=>"false", "health_plan"=>"", "date_of_recertification"=>""}, "commit"=>"Add Driver"}
MOPED: 127.0.0.1:27017 COMMAND database=admin command={:ismaster=>1} runtime: 0.5280ms
MOPED: 127.0.0.1:27017 QUERY database=healthfund_development collection=users selector={"$query"=>{"_id"=>BSON::ObjectId('52d59524544b38160c000000')}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 0.4150ms
MOPED: 127.0.0.1:27017 QUERY database=healthfund_development collection=drivers selector={"hack_number"=>38924} flags=[] limit=-1 skip=0 batch_size=nil fields={:_id=>1} runtime: 1.1000ms
MOPED: 127.0.0.1:27017 INSERT database=healthfund_development collection=drivers documents=[{"field_worker_name"=>"Field Worker", "hack_number"=>38924, "first_name"=>"test", "middle_initial"=>"", "last_name"=>"testing", "date_of_birth"=>1988-03-01 00:00:00 UTC, "gender"=>"", "street"=>"something", "apartment_number"=>"", "city"=>"something", "state"=>"NY", "zip_code"=>"02398", "cell_phone"=>"", "other_phone"=>"", "email"=>"", "nationality"=>"", "language"=>"", "dmv_number"=>"", "state_of_residence"=>"", "has_health_insurance"=>false, "health_plan"=>"", "date_of_recertification"=>nil, "_id"=>38924, "updated_at"=>2014-01-16 15:42:40 UTC, "created_at"=>2014-01-16 15:42:40 UTC}] flags=[]
COMMAND database=healthfund_development command={:getlasterror=>1, :w=>1} runtime: 3.4590ms
Redirected to http://localhost:3000/drivers/38924
Completed 302 Found in 17ms
mongodb - 助力车:运行裸 mongo 命令
我在运行 stat 命令时没有收到这样的命令错误
db.stat()
在 mongo 控制台中
但是从轻便摩托车上运行它会出错
session.command(stat: 1)
failed with error "no such cmd: stat"
ruby - 助力车:如何将用户添加到 mongo 数据库
有没有办法从 Moped 将用户添加到数据库。我没有看到任何与 mongo 控制台等效的命令