问题标签 [mongoid3]

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 回答
422 浏览

heroku - 如何在 Heroku 上用 MongoID 判断数据库大小?

我们在 Heroku 上使用MongoHQ插件和Mongoid 3.0适配器。插件计划带有大小限制,当达到 DB 限制时,Mongo 将默默地失败写入(除非配置为安全模式——在这种情况下它会抛出异常)。

我正在尝试从应用程序中查询我们离我们有多近,并在我们达到限制时发送警报。我怎样才能运行类似db.stats()命令但使用 Mongoid 的东西?

0 投票
0 回答
287 浏览

ruby-on-rails - 在 Rails 环境中多次调用 mongoid 观察者

使用 Mongoid 3,rails 3.2

我有这样的课

我有一个像这样的观察者

我的问题是 after_create 回调被多次调用,有时最多 3 次,当我通过控制器或控制台创建公司时,它会调用两次回调。我已经测试以确保观察者没有被实例化两次。我也尝试过使用 before_create 并检查 new_record?第一次返回 true 第二次返回 false 所以我不知道它为什么第二次调用它。

这是我的 Companies 控制器,但是我想使用我的 after_create 回调,因为我只想在创建模型时调用它,而不是在更新模型时调用它

0 投票
0 回答
352 浏览

ruby-on-rails - Mongoid 3 中的 limit(10) / Moped 对整个集合执行 count()

我有一个执行快速执行的简单查询的操作,但由于某种原因,它还执行了一个count()我没有要求的命令:

在控制器中:

在日志中:

从日志中可以看出,计数需要378 毫秒,而实际获取我想要的 10 个文档只需要4 毫秒。我怎样才能消除计数?

我正在使用 will_paginate,但不在此特定操作/视图中。

有任何想法吗?

* 更新 * Active 只是一个标准范围:scope :active, where(status: "available")

0 投票
1 回答
710 浏览

mongodb - Mongoid embeds_many / embedded_in 与 ActiveAdmin 中的 Formtastic 的关系...?

唷 - 很多项目都包含在这个项目中,我已经做了一些(广泛的)搜索但无济于事,所以抛出一个耀斑,看看是否有其他人正在使用类似的堆栈并有解决方案。

我正在使用启用 Mongoid 的 ActiveAdmin 分支为 Rails 3 应用程序构建管理界面。

到目前为止,ActiveAdmin(使用 Formtastic 构建其表单)似乎正在发挥作用。embeds_many但是在尝试将此堆栈与 Mongoid和embedded_in关系一起使用时,我遇到了障碍。我正在努力成为一个好公民,并在 Mongo 中使用适当的数据建模技术,但 Formtastic 似乎不想一起玩。

我将分享我遇到的具体错误,尽管它可能很深奥。

如果我不能找到一个好的解决方案,我会接受它并使用has_manyand belongs_to,即使我知道我会放弃 MongoDB 的主要好处(应用程序不会大到足以缺乏连接/多个查询是一个问题,但我认为我会从一开始就以正确的方式做事!)。

它在线上窒息f.input :location并抛出:

我将其更改:as => :select:as => :check_boxes并实际上让它显示正确的位置(尽管作为复选框,而不是选择或单选)。但是在提交表格后,我收到了一个问候:

在查看原始提交时,它试图将我的选择发送为“event_id”,而不是父文档(位置)的 id。

无论如何 - 我的直觉是我正在尝试将一个方形钉子插入一个圆孔,但如果其他人有任何想法,他们将不胜感激。

0 投票
1 回答
329 浏览

mongodb - 让 Mongoid 在 active_record 旁边使用 rails 3

在 mongoid 3 的安装指南中,它还解释了如何禁用活动记录,

问题是我正在尝试将 Mongoid 集成到一个广泛使用 active_record 和 mysql 的现有项目中,我无意改变它。

我也在active_record上使用squeel。

无论如何,在我添加 gem 并尝试对活动记录执行任何操作后,我都会收到以下错误;

Mongoid 是否不再需要与 active_record 一起运行?我在过去使用过大小 active_record 的 Mongoid 2 并取得了巨大的成功。这是怎么回事?

我正在使用导轨 3.2.9。

谢谢任何帮助,

这是我得到的错误:

NoMethodError:来自/home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/sanitization.rb:59:in expand_hash_conditions_for_aggregates'中的未定义方法to_sym' for #<Origin::Key:0x0000000851d788> from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/sanitization.rb:60:ineach' from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/sanitization.rb:59:in来自 /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/squeel-1.0.13/lib/squeel/adapters/active_record/relation_extensions.rb:248:in block in build_where' from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/squeel-1.0.13/lib/squeel/adapters/active_record/relation_extensions.rb:243:inmap' 来自 /home/ miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/squeel-1.0.13/lib/squeel/adapters/active_record/relation_extensions.rb:243:in build_where' from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/relation/query_methods.rb:136:inwhere' from /home/miki/.rvm /gems/ruby-1.9.3-p327@simplee/gems/squeel-1.0.13/lib/squeel/adapters/active_record/relation_extensions.rb:218:in where' from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/querying.rb:9:inwhere'

0 投票
1 回答
3716 浏览

mongodb - 用 Mongo 存储时间长度的类型

我应该使用什么类型来存储 MongoDB 的时间长度?

我需要存储声音数据的时间长度。所以时间戳类型似乎不正确。

0 投票
2 回答
663 浏览

ruby-on-rails-3 - Rails 和 Mongoid 以及重复查找查询

我的 Rails 应用程序中有这种非常奇怪的行为。所有查找查询都运行两次。我已经通过在 ap 端和 DB 端记录查询来验证这一点。我只在开发模式下测试过它。

我已经在方法中添加了日志记录,以查看这些方法是否被多次调用,但事实并非如此。

所有保存都只运行一次,因此没有问题。只有数据库中的数据越多,页面加载会越来越慢的问题,因为它会两次查询所有数据。

我什至不知道我应该粘贴代码的哪些部分,因为我不知道这可能来自哪里。

我正在使用mongoid (3.0.13), rails (3.1.3)

这是整个源代码的 github 链接https://github.com/deiga/new-Roydon/tree/develop

0 投票
1 回答
956 浏览

mongodb - Mongo 在单个查询中组合和或

我正在尝试找出查询 mongo 的最佳方法。我正在使用 Mongoid 和最新的 mongo 版本

我想要做的是这样的查询

user_id => [id 数组] 和 user_type => "some_type" 或 user_id => [id 数组] 和 user_type => "some_type"

我怎样才能在 Mongo/Mongoid 中做到这一点?

0 投票
1 回答
326 浏览

ruby-on-rails - MongoDB 中使用 Moingoid 的常量

通过 Mongoid 在 Mongodb 中存储项目范围的常量有什么好的常见做法吗?是否值得将它们保存在数据库中?

0 投票
1 回答
69 浏览

sinatra - 使用 MongoID 嵌套 AND 和 OR 操作

我试图弄清楚如何使用 MongoID 嵌套 AND 和 OR 操作,就像这样(取自我曾经与 MongoMapper 一起使用的东西):

我不太熟悉联合和交叉的工作方式,但更重要的是其中的每个孩子AND都是可选的/不保证的。换句话说,其中的每个查询AND都是程序化的,可能有 2 个要检查的项目、1 个项目等。

我想过做这样的事情:

但是,唯一的问题是我不确定基于用户输入构建查询的最佳实践。我有一个基于 sinatra 的应用程序,它充当连接到我的 MongoID 模型的用户的 API 点,我希望用户能够通过 API 构建这样的查询(也许并不复杂)。

由于各种原因,我从 MongoMapper 迁移到 MongoID,但是使用 MongoMapper,这些查询稍微简单一些,因为方法中支持所有内容,例如嵌套andor运算符where