问题标签 [mongoid4]

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 投票
0 回答
88 浏览

ruby-on-rails - Mongoid 4 #only 或 #without 现在在尝试保存时会引发错误

我有一些非常大的文件。由于嵌入和数组字段。一个例子如下:

例如,可能有数百个事件并且不超过十个 group_id。对于我的应用程序,我需要一些字段,但我不能返回事件(它很慢)。

在版本 3 Mongoid 中,我过滤了必要的字段,执行了我的操作并更改了其中一些返回的字段:

但是 Mongoid 4:“现在使用 #only 或 #without 从标准加载的文档现在在尝试保存时会引发错误”。

我无法使用原子操作来解决它,因为我的模型具有回调(after_save,before_update),这些回调(after_save,before_update)取决于字段(ActiveModel::Dirty)的先前状态,例如status_changed?group_ids_change

他们可以帮助我提出任何建议吗?

0 投票
1 回答
474 浏览

mongodb - Model.find 不适用于 mongoid

我无法使用 Model.find(id) 找到记录。

但是当我尝试使用 column name 查找相同的记录时,我将返回相同的记录。

就我而言, find 的工作方式因字符串而异。请看下面的代码。

但是第一个代码返回对象,而第二个代码引发异常。

请帮助我。

谢谢,野兔

0 投票
1 回答
180 浏览

ruby-on-rails - 使用 ruby​​ mongoid gem 过滤嵌套属性

我已经定义了下面的范围(在我的模型中),以帮助我过滤掉某些不需要的嵌套数据。

当我运行它时,我得到的结果包含此范围不应包含的其他事件,例如“in_progress”。

0 投票
1 回答
196 浏览

ruby-on-rails - 通过heroku播种mongoDB时出错

0 投票
2 回答
6315 浏览

ruby-on-rails - 设置 mongoid 哈希字段值

我在 Rails 项目(均为 4.0.x)中使用 Mongoid,并且我有一个带有哈希字段的文档,该字段存储一些无模式数据。

使用此设置,我可以查询具有如下键的内容:endDate

这一切都很好,很方便。为该字段使用哈希字段:info很好,因为我要存储的内容没有固定的模式,并且因一件事而异。

好的,但是,我不能对哈希$set中的键/值对使用相同的点语法。:info[1]

引发Mongoid::Errors::UnknownAttribute错误。

它告诉我我必须Mongoid::Attributes::Dynamic在我的模型中加入才能做到这一点,但这对我来说似乎不合适。哈希字段类型的重点似乎是允许您使用没有固定模式的数据。我似乎不必包含一个特殊的“动态属性”模块来使用哈希字段。

所以现在,我正在使用常规的旧[]语法更新值,然后调用save模型,如下所示:

但很多时候,它会更好地体现$set价值。是否有其他语法用于设置哈希字段值?我对上述错误消息和动态属性有误吗?我现在是否坚持对哈希字段进行两步更新?

[1] 诚然,我最近从 mongomapper 迁移过来,所以我对这种语法的期望部分是因为之前在 mongomapper 中能够做到这一点。

0 投票
1 回答
89 浏览

ruby-on-rails - 在 mongoid 上从 belong_to 迁移到 has_and_belongs_to_many 而不会丢失数据

我正在使用带有 mongoid 4.0 的 Rails 4.1 目前,我有一个关系 1-N

我想将这种关系更改为NN。为此,我将两种模型都更改为:

但现在我没有以前的数据了。

0 投票
1 回答
132 浏览

mongodb - 保存回调后的 Mongoid 运行两次

当我创建p1 = Part.create它时,它也会创建part2对象。但它为part2子作业更新了两次数量。我已经检查了历史跟踪器的part2对象。它显示了两个历史跟踪器,但数据库上只有一个part2对象。任何帮助都会很棒。

0 投票
1 回答
523 浏览

ruby-on-rails - 如何避免 Mongoid(或 MongoDB)用 null 替换空数组

背景:我在 Rails 中构建了一个 API,在 Angular 中构建了一个客户端。我的 API 将连接到第三方 API 并获取一些数据。这些数据将以嵌套对象/哈希的形式出现,存储在 MongoDB/Mongoid 中。

当我的 Angular 客户端操作数据并将其发送到我的 API 以保存它时,嵌套哈希/对象中的所有空数组都将替换为null.

有没有办法避免这种情况发生(除了手动将所有nulls 转换回,array但这会很乏味和复杂,因为我还需要将此更新的数据推送到第三方 API)?

0 投票
1 回答
50 浏览

mongoid - 如何通过关联 Mongoid 4 查找所有文档

我有一个模型Tag可能属于其他几个模型,但目前只有一个模型Todo又属于User这样:

如何查询Tags属于特定用户的所有内容?我写了以下内容:

接着:

但那些没有用。我错过了什么?

0 投票
1 回答
161 浏览

ruby-on-rails - Mongoid 不保存哈希属性

我正在使用 Rails 4 和 Mongoid 4。在我的应用程序中,我有一个模型,我有一个哈希属性。我正在尝试像这样更新此属性:

但是上面的代码似乎并没有保存在数据库中。如果我像这样打印对象:

我得到了正确的结果,所以没有错误,但我尝试再次加载模型(更新后):

属性没有更新...我看过这篇文章,但是 1) 很旧,所以也许这方面有一些新的东西,2) 它对我不起作用。

有什么建议么?