好的,这可能是一个愚蠢的问题,但我一直在阅读并尝试不同的查询,由于某种原因,我无法在不抛出错误的情况下让它工作。这是我第一次使用 MongoDB,它是在一个 RoR 项目中。我们成立慈善机构有一个推特句柄字段,但最初并没有放入模型中。所以我们用慈善机构填充了数据库,但现在它们都没有 twitter 句柄字段。我将它添加到模型中,所以现在创建的所有其他人都将拥有它。
我的问题是,当我尝试更新数据库中已有的慈善机构时,我不断收到指向 $set 的错误:
namespace :add_tw_handles_fields_2013_6_13 do
desc "add_tw_handle"
task :add_tw_handle => :environment do |t, args|
# db.charity.update( { featured: false }, { $set: { tw_handle : "test"}}, false, true)
# got your 6
Charity.update({ },
{
$set: { "tw_handle": "test"}
},
{ multi: true }
})
end
end
我尝试了上面的 2 个 synax 调用,我正在阅读这 2 个文档http://docs.mongodb.org/manual/reference/method/db.collection.update/ http://docs.mongodb.org/manual/core /update/#Updating-%24 位置操作符。
我总是收到这个错误:
add_tw_handles_fields_2013_6_13.rake:16: syntax error, unexpected ':', expecting tASSOC
$set: {
据我所知,这是正确的语法。我在脚本中运行它,所以我认为我不需要数据库。在我的模型名称之前(如未注释的更新中所示)对吗?我对此并不陌生,但我确实复制并粘贴了示例并填写了我的信息,但什么也没有。然后我尝试添加一个查询,但在它到达 $set: 之前从来没有错误,我不知道为什么。它与上面链接的 Mongo 文档中显示的完全一样。
任何对我的问题的见解将不胜感激。
谢谢,
艾伦