ruby - Mongoid 不删除 Mongo 对象

标签 ruby mongodb sinatra mongoid

我正在使用 Sinatra 和 Mongoid 访问 MongoDB。它的大部分工作正常,除了当我尝试删除一个对象时,该对象被删除但似乎保留在数据库中。

 u = User.find(user_id)
 u.delete

这似乎有效并且不会产生错误,但是当我使用 Mongo 控制台检查数据库以确认这一点时,该对象仍然存在。用户对象不在上限集合中。

 u = User.find(user_id)
 u.delete
 u = User.find(user_id)

此更改确实会产生错误,这意味着对象已成功删除。尽管如此,在 Mongo 控制台中,对用户集合的 find() 调用仍会显示该对象。

最佳答案

虽然 MongoDB 对象没有从数据库中删除,但对象中添加了一个“deleted_at”参数,指示它何时被“删除”。之后将不会在搜索中找到该对象。

关于ruby - Mongoid 不删除 Mongo 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6862014/

相关文章:

ruby-on-rails - rails : Adding to model after user submits form

ruby - 无法使airbrake gem 适应 Sinatra 应用程序

ruby - Ruby 中的堆栈级别太深,试图随机抽取一张卡片

ruby - 如何为 openshift 设置 RHC?我遇到: `can' t 满足 'highline (~> 1.6.11)' ,已经激活 'highline-1.7.1' (Gem::LoadError)

ruby-on-rails - 将pdf文件转换为base64字符串

node.js - Mongoose 更新查询不适用于 Node.js

javascript - 向模板实例变量传递方法调用结果时出现异常

node.js - 用于 "topic -> posts"域用例的 MongoDb 模式设计

ruby - 从 require 获取数据库配置

ruby - 如何在 Sinatra 中使用带斜线的参数?