问题标签 [mongodb-ruby]

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 投票
2 回答
631 浏览

ruby - 使用 ObjectId 时找不到带有 Ruby 和 MongoDB 的文档

我有一些用 Ruby 1.9.2 补丁级别 136 编写的代码,我遇到了一个问题,当我find通过原始 ruby​​ mongo 驱动程序中的 _id 执行时,我在尝试使用 csv 文件中的值时得到一个 nil。这是代码:

CSV 文件如下所示:

第一列是我已经拥有的 Mongo 中的 objectId。如果我从 mongo 命令行执行本地查找第一列中的值,我会得到我想要的数据。@game.inspect但是,上面的代码在调用时返回 nil 。

我尝试了以下变体,它们都产生 nil:

我什至尝试使用 BSON 类构建 ObjectId,如下所示:

或者

两者都输出以下错误:

疯狂的是,如果我手动创建 BSON ObjectId,它就可以工作(如下所示):

当我运行@game.inspect 时,我得到了我的数据,正如我所期望的那样。但是,如果我将其更改为使用 row[0],我将得到 nil。

为什么?我究竟做错了什么?

系统详情

RVM 版本:rvm 1.6.9

红宝石版本:ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]

蒙哥版本:

再说一遍,为什么?我在这里做错了什么?谢谢!

0 投票
2 回答
1890 浏览

ruby-on-rails - Ruby on Rails 和 MongoDB

我有一个新的 Ruby on Rails 安装,我可以在其中看到默认的起始页。

我按照本指南将 MongoDB 安装到 Rails。

现在我在运行时收到此错误rake test

我已经安装了 bson_ext gem,这意味着现在 bson_ext 不在我的加载路径中,或者 gem 的版本不同。

加载路径在哪里?我怎样才能改变它?如何检查宝石是否为同一版本?

0 投票
2 回答
303 浏览

mongodb - 是否可以降低 Mongo 中的最大文档大小或以其他方式限制更新时的文档大小?

我想强制执行小于系统实际支持的最大文档大小。在插入时这样做是合理的——我可以在插入之前进行检查。在更新时这样做不太清楚。我不想阅读整个文档来检查更新是否没有超出大小。我应该怎么办?我可以降低最大文档大小,以便在更新时引发异常吗?

0 投票
3 回答
8795 浏览

mongodb - 如何在没有缓存的情况下检查 mongodb 查询性能

我有一个查询需要很长时间才能完成。我喜欢做一些性能测试,但是在我检查一次(目前需要大约 30 秒)之后,查询开始运行得更快(< 1 秒)。我认为它必须与 mongodb 缓存有关。有没有办法禁用 mongodb 的缓存或者我可以检查性能的另一种方法?

我正在使用托管在 mongohq 中的 mongodb。使用 Ruby on Rails 3 编程。下面是解释:

请注意,我不得不截断一些解释,因为它太长了。有“很多对象 ID”的地方有很多对象 ID(~400)。

谢谢大家

0 投票
1 回答
2362 浏览

mongodb - 如何在没有 $pull 或 $pop 的情况下更新数组中的第 n 个元素?

如何更新数组中第 n 个位置元素的值?

我想更新 category_id 的索引 2。

一种解决方案是 ($pop$pull) 和$addToSet

还有其他解决方案吗?

0 投票
1 回答
111 浏览

ruby-on-rails - 需要 Rails mongoDB 单连接

我正在使用 rails 应用程序,我的 rails 应用程序日志应该存储在 mongoDB 中。

我正在记录每个控制器的方法调用及其参数、调用日期等。

这是我的应用程序控制器中的代码,用于记录信息

显然,我的代码需要一些标准问题。从我的实现来看,每次调用方法发生时,mongoDB 连接都会建立。所以连接对象会自动增加,这将成为性能问题。我需要 Single DB 连接,只要它需要我需要获取连接对象并执行插入操作。我怎样才能做到这一点。

请帮助我。

0 投票
1 回答
4063 浏览

mongodb - 在 MongoDB 中查询多对多关系

我正在阅读MongoDB in Action并且在谈论查询文档中的多对多关系时,我很难理解他是如何编写示例查询的(使用 Ruby 驱动程序)。

该查询正在查找特定类别中的所有产品,其中有一个productscategory集合。作者说“要查询园艺工具类中的所有产品,代码很简单:

一个产品文档是这样的:

CATEGORY 文档是这样的:

有人可以向我解释一下吗?我仍然无法理解他是如何编写该查询的:(

谢谢大家。

0 投票
1 回答
494 浏览

ruby - Mongodb-Ruby 限制为特定字段

我在使用 Ruby API 限制来自 mongodb 的结果集中的字段时遇到了一些问题。

我有一个 mongo 集合,我在其中存储有关文件的信息。其中一个字段是“image_filename”。我正在尝试返回集合中具有此字段的任何记录的字段和 ID。

在 mongo shell 中,这是通过以下方式完成的:

这很好用。但是,当我尝试通过Ruby API进行类似查询时

我只得到一个空集。我想我又做错了什么。我已经尝试了上述所有可能的变化,有人能指出我正确的方向吗?

谢谢!

0 投票
1 回答
280 浏览

ruby - MongoDB 关于 collection.insert 和数据大小的困境

我正在做这个项目,我必须在 MongoDB 数据库上执行批量插入

我知道 MongoDB 是一个文档数据库,每个文档的大小都有限制,如此处所示

现在批量插入代码看起来像这样

mass_data是这样的数组哈希

数组的总长度为 500K - 100K

我确定数组中没有上述哈希值(基本上是 MongoDB 中的文档)的大小为 16MB

所以每当我表演这个

为什么它一直给我 16MB 限制错误,如上所述我很确定数组中存在的上述文档(即散列)中没有一个不称重是 16MB 个体。

那么为什么文档的数据大小错误超过

是否应该考虑将整个数组视为单个文档

数组的每个散列作为一个单独的文档

任何人都可以建议

顺便说一句,我在 MongoDB rub​​y​​ 驱动程序之上使用 Mongoid 驱动程序来连接到 MongoDB

0 投票
5 回答
6686 浏览

ruby-on-rails - 如何以编程方式获取 Mongoid 正在写入的当前数据库?

我正在使用 Mongoid 与带有导轨的 Mongoid.override_database("database_name") 与多个数据库交谈。如何以编程方式查找当前数据库?

会话上的 Mongoid 文档:http://mongoid.org/en/moped/docs/driver.html定义了覆盖数据库的方法,但没有定义获取当前数据库使用的方法。