如何在 Mongoid 中更改文档的 _type?
我在 Rails 应用程序中有以下模型:
class User
include Mongoid::Document
...
end
class Admin < User
...
end
我得到一个用户:
u = User.find(some_key)
并尝试更改 _type:
u._type # => "User"
u._type = "Admin"
u.save
u._type # => "Admin"
但如果我重新加载该对象,它仍然是一个用户:
u.reload
u._type = "User"
更改此设置的正确方法是什么?
I have the following models inside a Rails application:
class User
include Mongoid::Document
...
end
class Admin < User
...
end
I get a user:
u = User.find(some_key)
And try to change the _type:
u._type # => "User"
u._type = "Admin"
u.save
u._type # => "Admin"
But if I reload the object it's still a user:
u.reload
u._type = "User"
What is the correct way to change this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您还可以使用 Model#update_attribute 来保留 mongoid:
you could also use Model#update_attribute to stay with mongoid:
最终通过使用原始 MongoDB 查询解决了这个问题:
Ended up solving it by using a raw MongoDB query: