问题标签 [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.
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
。
他们可以帮助我提出任何建议吗?
mongodb - Model.find 不适用于 mongoid
我无法使用 Model.find(id) 找到记录。
但是当我尝试使用 column name 查找相同的记录时,我将返回相同的记录。
就我而言, find 的工作方式因字符串而异。请看下面的代码。
但是第一个代码返回对象,而第二个代码引发异常。
请帮助我。
谢谢,野兔
ruby-on-rails - 使用 ruby mongoid gem 过滤嵌套属性
我已经定义了下面的范围(在我的模型中),以帮助我过滤掉某些不需要的嵌套数据。
当我运行它时,我得到的结果包含此范围不应包含的其他事件,例如“in_progress”。
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 中能够做到这一点。
ruby-on-rails - 在 mongoid 上从 belong_to 迁移到 has_and_belongs_to_many 而不会丢失数据
我正在使用带有 mongoid 4.0 的 Rails 4.1 目前,我有一个关系 1-N
我想将这种关系更改为NN。为此,我将两种模型都更改为:
但现在我没有以前的数据了。
mongodb - 保存回调后的 Mongoid 运行两次
当我创建p1 = Part.create
它时,它也会创建part2
对象。但它为part2
子作业更新了两次数量。我已经检查了历史跟踪器的part2
对象。它显示了两个历史跟踪器,但数据库上只有一个part2
对象。任何帮助都会很棒。
ruby-on-rails - 如何避免 Mongoid(或 MongoDB)用 null 替换空数组
背景:我在 Rails 中构建了一个 API,在 Angular 中构建了一个客户端。我的 API 将连接到第三方 API 并获取一些数据。这些数据将以嵌套对象/哈希的形式出现,存储在 MongoDB/Mongoid 中。
当我的 Angular 客户端操作数据并将其发送到我的 API 以保存它时,嵌套哈希/对象中的所有空数组都将替换为null
.
有没有办法避免这种情况发生(除了手动将所有null
s 转换回,array
但这会很乏味和复杂,因为我还需要将此更新的数据推送到第三方 API)?
mongoid - 如何通过关联 Mongoid 4 查找所有文档
我有一个模型Tag
可能属于其他几个模型,但目前只有一个模型Todo
又属于User
这样:
如何查询Tags
属于特定用户的所有内容?我写了以下内容:
接着:
但那些没有用。我错过了什么?
ruby-on-rails - Mongoid 不保存哈希属性
我正在使用 Rails 4 和 Mongoid 4。在我的应用程序中,我有一个模型,我有一个哈希属性。我正在尝试像这样更新此属性:
但是上面的代码似乎并没有保存在数据库中。如果我像这样打印对象:
我得到了正确的结果,所以没有错误,但我尝试再次加载模型(更新后):
属性没有更新...我看过这篇文章,但是 1) 很旧,所以也许这方面有一些新的东西,2) 它对我不起作用。
有什么建议么?