我在索引页中有一个学生名称列表。如果我删除一个学生,它将从Mongo数据库中销毁整个文档。
但是如果我从索引页中删除它,它应该从列表中删除,但不想从Mongo数据库中删除它。我不想从我的数据库中破坏任何数据!!
I know the other ways to achieve
它,但我想知道在蒙古可以我们需要包括一个额外的蒙古模块来支持它。蒙古有什么功能吗? !
for example:
include Mongoid::Document
include Mongoid::Timestamps
没有。Mongoid为您提供了其他数据库所能提供的简单CRUD功能。要隐藏数据,您需要将属性设置为hidden
,然后在视图中不显示隐藏的记录。
有
include Mongoid::Paranoia
但问题是它在很长时间内都不会被支持。查看mongoid docs
所以如果你打算升级到mongoid 4,不要依赖这个。
如果计划在最多为mongoid 3时执行此操作,则可以使用 mongoid::Paranoia with。Paranoia使用deleted_at属性来区分已删除的文档,并默认在deleted_at: nil上应用作用域。
include Mongoid::Paranoia
document.delete # Deleting it from index but keep it in DB
document.delete! # Delete it from collection permanently
document.destroy # Sets the deleted_at field, firing callbacks.
document.destroy! # Permanently deletes the document, firing callbacks.
document.restore # Brings the "deleted" document back to life.
collection_class.deleted # To show all deleted documents (marked as deleted)
如果您打算继续使用mongoid 4,您可以试试https://github.com/simi/mongoid-paranoia,它也为mongoid 4做同样的事情。