После исследований, я нашел этот link, который показывает, вы можете обновить поле динамически в Mongoid: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" } })
Согласно this StackOverflow поста, когда четвертый paraemeter устанавливаются в верно, должен обновить все ваши записи. Но это не работает. Когда я делаю следующее:
Contact.rename('apple info', 'new_info', false, true)
А затем MongoDB запроса:
db.mongoid_container_contacts.find()
{ "_id" : ObjectId("558c50256d6163b255060000"), "apple info" : "etretrytr", ...
Как вы можете видеть, «яблоко информация» остается в существующих записях. Почему не обновляется имя существующих записей?
@muistooshort Я использую Mongoid 4. – Donato