问题标签 [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.

0 投票
3 回答
4026 浏览

ruby - 如何使用 mongoid / moped 进行 upsert / push

我正在使用 Mongoid (v3) 访问 MongoDB,并希望执行此操作:

这在 mongo shell 中运行良好。这也正是我想要的,因为它是一个单一的原子操作,这对我来说很重要,因为我会经常称呼它。我不想做两个操作——一个获取然后一个更新。我已经通过 mongoid 尝试了很多东西,但无法让它工作。

如何让 MongoID 不碍事,只需将此命令发送到 MongoDB?我猜想在 Moped 级别有一些方法可以做到这一点,但该库的文档基本上不存在。

0 投票
1 回答
2907 浏览

ruby-on-rails-3 - Heroku & MongoHQ: ActionView::Template::Error (操作:#

我有一个带有 MongoID 3 的 Rails 3 应用程序成功部署到 Heroku(使用 MongoHQ)——但随后发生了一些事情(无法确定它到底是什么)并且构建开始在 Heroku 上崩溃。

所以这是我得到的错误:

TLDR: Moped::Errors::AuthenticationFailure (The operation: #<Moped::Protocol::Commands::Authenticate ... failed with error "auth fails")

使调试变得更加困难的原因是它在 localhost 上运行良好。现在我已经没有想法了,这可能是什么。

我最近在 Heroku 上苦苦挣扎,因此我认为我应该有正确的设置来选择数据库驱动程序和服务(在 Gemfile 中使用新的 yml 方案 + Ruby 1.9.3)。

当我跑步时,heroku config --app app_name我得到

我的 mongoid.yml 看起来像这样:

Gemfile 是这样的:


我在处理大文件和 TCPDF 时也遇到了麻烦。我从 TCPDF 切换到 mPDF。该项目基于 FPDF 和 HTML2PDF,并且通过 HTML 解析速度更快。

例如,TCPDF 花了大约 70 到 80 秒的时间进行文章详细概述(150 页的图片、链接和一些东西)。

相同的 HTML 代码和相同的 PHP 脚本刚刚替换为 mPDF 类和函数,只需 6 到 8 秒即可创建相同的 PDF。

0 投票
3 回答
1054 浏览

mongoid - 如何重置 mongoid 3 数据库连接

在 Mongoid 2.x 中,可以执行Mongoid.database.connection.close重置数据库连接。这个特定的 API 在 Mongoid3 中不再可用,重置连接的新方法是什么?

动机:在查询正在进行时中断查询(ctrl-c)会终止您的连接。任何后续查询都将挂起。此外,诸如超时之类的抛出错误也会做同样的事情(参见:http ://simple10.com/rescuing-from-racktimeout-to-close-mongodb-connection )。

0 投票
3 回答
757 浏览

ruby - 助力车:重命名 mongodb 集合

如何使用 Mongoid + Moped 驱动程序重命名集合?

是否有http://docs.mongodb.org/manual/reference/command/renameCollection/的轻便摩托车实现?

0 投票
0 回答
465 浏览

ruby-on-rails - 为什么 Mongoid/Moped 在生产 Rake 任务中向 Airbrake 抛出 Timeout::Error?

我的生产安装有问题。我有几个成功运行的预定 rake 任务。但是,我收到了Timeout::Error: execution expired很多来自 Airbrake 的电子邮件。

但是,奇怪的是:Rake 任务全部成功完成。我正在 cron 命令中捕获 stdout/stderr,并且错误不会出现在日志中。我还在 rake 任务的末尾添加了简单的打印语句来验证它们的完成。

我该如何进一步解决这个问题?

这是其中一封电子邮件的堆栈跟踪:

0 投票
1 回答
873 浏览

rspec - rspec 给出错误 Moped::Errors::ConnectionFailure

当我运行测试 rspec 时,出现错误

我不知道为什么会出现这个错误?

谢谢..

0 投票
1 回答
576 浏览

ruby-on-rails - Mongoid3/Moped:数据库=管理员命令={:ismaster=>1}

我已将我的 Rails 应用程序升级到 3.2.8 和 Mongoid 3/Moped。在开发中一切正常,在我的开发机器上同时设置为生产,并且rails c在我的生产设置上也可以正常工作。但是,该应用程序没有启动(部署在乘客身上)并且似乎只是超时,没有产生任何错误。我将 log_level 设置为在生产中调试,这就是我所看到的:

我该如何解决?(作为记录,我尝试使用的数据库不称为 admin。)

谢谢,

阿维沙

0 投票
4 回答
3769 浏览

ruby-on-rails - Mongoid 聚合 $match 与 Date 对象不起作用?

我在具有以下结构的集合中有用户文档:

我可以根据日期轻松查询这些文档:

根据日志:

MOPED: 127.0.0.1:27017 COMMAND 数据库=db 命令={:count=>"users", :query=>{"activities"=>{"$elemMatch"=>{"date_time_created"=>{"$gte" =>2012-05-10 00:00:00 UTC,“$lt”=>2012-07-12 00:00:00 UTC}}}}}(0.5260 毫秒)

我以这种方式得到了我需要的结果。

但是,当我尝试基于相同的条件使用新的聚合函数和 $match 时:

根据日志:

MOPED: 127.0.0.1:27017 COMMAND 数据库=db command={:aggregate=>"users", :pipeline=>[{"$match"=>{:activities=>{"$elemMatch"=>{"date_time_created" =>{"$gte"=>2012 年 5 月 10 日,星期四,"$lt"=>2012 年 7 月 12 日,星期四}}}}}]} (0.6049ms)

“start_date”和“end_date”是 Ruby Date 对象,在两个查询中基本相同。但是,当我查看日志时,它们会变成不同的格式。当我尝试使用 start_date.strftime("%Y-%m-%d") 之类的东西强制格式时,它仍然不起作用。

聚合管道中还有其他功能,但我把它们拿出来,我仍然得到错误。

如何让聚合函数在日期上匹配?

0 投票
2 回答
1028 浏览

ruby - 无法捕捉红宝石异常

具有以下长期运行的 rake 批次:

我想捕获 Moped::Errors::CursorNotFound 异常,但它不起作用。

在 crontab 日志中,我只收到以下消息:

然后批处理停止并退出,而我正在查看救援消息和下一个循环操作。

更新

我正在尝试通过执行以下操作“扩展”设置为StandardError的可捕获异常:

...以防万一,即使CursorNotFound继承自MongoError,后者继承自StandardError,如您在此处看到的。

更新

我刚刚更新了以前的简化代码,使用 rake 使用的完整SyncStarredRepo类,以防万一我在循环逻辑中遗漏了一些东西,开始/救援/结束等等......

更新

按照以下方式打印的堆栈跟踪rake -t

0 投票
1 回答
512 浏览

ruby-on-rails - 耙中止!操作:“获得更多”

运行 rake 任务时出现以下错误。谁能帮我?

错误

我的佣金代码

提前致谢