【发布时间】:2015-06-25 19:15:52
【问题描述】:
经过研究,我发现了这个link,它表明您可以在 mongoid 中动态更新字段:
Model#rename
Performs MongoDB's $rename modifier that renames a field atomically.
MONGOID
person.rename(:bday, :dob)
MONGODB COMMAND
collections["people"].update( { "_id" : ... }, { "$rename" : {
"bday" : "dob" } } )
根据thisstackoverflow 帖子,当第四个参数设置为 true 时,它应该会更新您的所有记录。但它不起作用。当我执行以下操作时:
Contact.rename('apple info', 'new_info', false, true)
然后查询mongodb:
db.mongoid_container_contacts.find()
{ "_id" : ObjectId("558c50256d6163b255060000"), "apple info" : "etretrytr", ...
如您所见,“苹果信息”保留在现有记录中。为什么不更新现有记录的名称?
【问题讨论】:
-
@muistooshort 我正在使用 Mongoid 4。
标签: ruby-on-rails ruby mongodb mongoid