#https://github.com/iamnader/mongoid/commit/ffb5a2b05202fe14e3b6b397382b02fcf402081f
def valid_mongo_type(t)
[Array, BigDecimal, Boolean, Date, DateTime, Float, Hash, Integer, String, Symbol, Time, BSON::ObjectId].include?(t)
end
desc "Default existing document values"
task :set_defaults => :environment do
models = get_mongoid_models
models.each do |m|
# get fields that have defaults set
fields_with_defaults = m.fields.select {|k,v| v.options.include?(:default)}
fields_with_defaults.each do |f|
field_name = f[0]
default_value = f[1].options[:default]
field_type = f[1].options[:type] || String # String is the default type
# the default could be a new document, so we don't worry about those
if valid_mongo_type(field_type)
# update all the documents of the collection to set the default field if the field is not set
result = Mongoid.master.collection(m.collection.name).update({field_name => {'$exists' => false}}, {'$set' => {field_name => default_value}}, :multi => true, :safe => true)
puts "Updated #{result.first.first['n']} #{m.name} documents to use a default of: #{default_value}"
end
end
end
end
分享到:
相关推荐
当`explicit_defaults_for_timestamp`设置为`ON`(默认值),MySQL不再隐式地为没有明确默认值的`TIMESTAMP`字段添加`CURRENT_TIMESTAMP`。相反,如果没有显式定义,默认值将为NULL。这使得数据库设计更加严谨,避免...
标题中的"Python库 | azureml_defaults-1.0.33-py2.py3-none-any.whl"指的是一款名为`azureml_defaults`的Python库,版本为1.0.33。这个库是专门为Python 2和Python 3设计的,支持两种解释器,其打包格式是.whl,这...
资源来自pypi官网。 资源全名:azureml_defaults-1.0.33-py2.py3-none-any.whl
如果你遇到了"视频没有缩略图"的问题,不用过于担心,这是一个常见的系统问题,可以通过一些方法进行修复。下面将详细介绍如何解决这个问题。 首先,视频缩略图的显示依赖于Windows Media Player (WMP) 的支持和...
这个警告信息表明MySQL正在尝试告诉你,它不再支持TIMESTAMP字段隐式默认值的设定方式,并建议你启用`--explicit_defaults_for_timestamp`服务器选项来遵循更明确的默认值设置规则。 TIMESTAMP数据类型在MySQL中用...
bash_defaults 我通常使用的标准vim,tmux,bashrc等文件。设置通过运行安装脚本来设置vim内容,pureline,cmake,tmux,并安装电力线字体。 ./setup.sh
PromptWithOptions 带有Python选项的命令行输入例子from promptwithoptions import ( set_prompt_defaults , promptwithoptions ,)clr_yellow = " \u001b [33m"clr_l_green = " \u001b [32;1m"clr_blue = " \u001b ...
它会遍历 `defaults` 中的所有属性,如果 `target` 对象中没有这些属性,就会把它们添加到 `target` 并赋予 `defaults` 中的值。这样,即使 `user` 对象没有 `age` 或 `isLoggedIn` 属性,它们也会被自动设置为...
标题中的"BX304L01B-SW-99005-r29p0-01eac0_arm_android_"似乎是一种特定版本的软件包标识符,用于Android系统在ARM架构上的运行。这个标识符可能包含了硬件平台、软件版本和其他相关元数据。"BX304L01B"可能是设备...
如论文:python calculate_mdelta.py data/HTKposteriors pos examples/phone_prior_defaults.csv 示例/mdelta_htkpost_defaults_results 平均值 对话语中的每一帧都有一个单独的 Mdelta 回归,在帧的两侧对称:...
// Don't forget to set a proper GLOBAL_Q in "IQmathLib.h" file #include "dmctype.h" #include "pid_reg3.h" void pid_reg3_calc(PIDREG3 *v) { // Compute the error v->Err = v->Ref - v->Fdb; // ...
`jpeg_set_defaults`设置默认压缩参数,`jpeg_set_quality`设置压缩质量,`jpeg_start_compress`和`jpeg_finish_compress`开始和结束压缩过程,而`jpeg_read_header`、`jpeg_start_decompress`和`jpeg_finish_...
例如,FuelCell_no_ess_in.m可能涉及燃料电池汽车(Fuel Cell Vehicle)且没有能量存储系统(ESS),gm_ev1_in.m可能与通用汽车的EV1电动汽车有关,FUEL_CELL_defaults_in.m可能包含燃料电池的默认设置,Focus_in.m...
特别地,`in_color_space`必须在调用`set_defaults`之前设置,因为某些默认参数的设定依赖于正确的颜色空间值。 接下来,可以调整其他压缩参数,比如压缩质量。`jpeg_set_quality`函数接受一个0到100之间的整数,...
解决方法:在 vi /etc/my.cnf 文件中加上 : explicit_defaults_for_timestamp=true 。保存后再次启动就可以了。 loading shared libraries: libaio.so.1: cannot open shared object file: No such file or ...
CVE-2021-3156(Sudo男爵Samedit) ... exploit_defaults_mailer.py漏洞利用覆盖结构默认值来修改邮件程序二进制路径。 它要求sudo编译时没有禁用root-mailer,例如CentOS 6和7。 exploit_userspec.py漏洞利用
`update user set host = '%' where user ='root';` 使配置立即生效: `flush privileges;` ### 3. 报错 [ERROR] [MY-013236] [Server] The designated data directory/u… 解决方法: 检查数据目录的权限和...
这意味着该资料可能包含如何利用滑模观测技术在没有实际位置反馈的情况下估计系统状态的详细说明。 **标签解析:** "28335 smo__ti sliding_mode ti_smo 无位置" 标签进一步强化了标题和描述中的关键词,突出了滑模...
explicit_defaults_for_timestamp=true skip-grant-tables (3)生成data目录,DOS下mysqld --initialize-insecure --user=mysql (4)Service successfully installed注册,mysqld -install (5)运行net start mysql命令...