mongodb文档更新后什么时候会过期?

2023-12-29

我在 mongodb 中有一个文档集合,其中expireAfterSeconds在日期类型索引上设置的属性。

为了便于讨论,这些文件被设置为一小时后过期。

当我更新此集合中的文档时,会发生以下哪一项情况?

a)该文件将在一小时后过期original创建时间。

b)该文件将在一小时后过期update time.

c)该文档将在一小时后过期索引变量是时候了,无论那是什么。

d)以上都不是

我认为这是c,但找不到参考文献来证实这一点。我对么?这是在哪里记录的?

[edit]:需要澄清的是,情况是我正在存储密码重置代码(应该会过期),并且我希望在请求新代码时旧代码停止工作。但这并不是很相关,因为我可以通过简单地删除旧事务来确保我想要的行为始终得到尊重。这个问题不是关于我当前的问题,而是关于 Mongo 的行为。


正确答案是c)

expireAfterSeconds 属性始终需要包含 BSON 日期的字段上的索引,因为该日期字段的内容用于选择要删除的条目。

当您想要更新文档以重置生存时间时,还要将索引日期字段更新为当前时间。

当您希望更新不影响 TTL 时,只需不要更新日期即可。

但是,请记住,expireAfterSeconds 并不能保证立即删除文档。删除是由每分钟运行的后台作业完成的。该作业优先级较低,当当前负载较高时,MongoDB 可以推迟该作业。因此,当您的用例必须精确到秒地遵守过期时间时,您应该在应用程序级别添加额外的检查。

此功能记录在此处:http://docs.mongodb.org/manual/tutorial/expire-data/ http://docs.mongodb.org/manual/tutorial/expire-data/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mongodb文档更新后什么时候会过期? 的相关文章

随机推荐

  • 找不到与给定名称匹配的资源:attr 'colorPrimary'

    我正在尝试更改 android studio 中操作栏的颜色 我已经将 minSDKVersion 更改为 21 所以我知道这不是问题 但我不断收到错误 我不知道发生了什么 这是我的 xml
  • 操作 CSRF 令牌后,在 中声明的视图仍然可以访问

    我正在探索 JSF 2 2 中的新功能 到目前为止非常酷 但我仍然不明白受保护的视图是如何工作的 我创建了一个带有 Facelet2 链接的 Facelet1 如下所示
  • 在 Mac 上从 VBA 宏启动 Google 搜索

    首先 我不是一个真正的程序员 我从事编辑工作 我们公司使用许多宏来简化我们的流程和功能 大量 findReplace 识别不一致的拼写 空格约定等 话虽这么说 我已经开始了解 VBA 编辑器如何在 Microsoft Word 上工作的一些
  • HttpPostedFileBase.SaveAs 工作但没有上传文件,也没有异常

    首先 这是我的代码 private Shoe ProcessForm Shoe shoe HttpPostedFileBase image try shoe Slug CMSHelper SanitizeTitle shoe Name sh
  • 具有血统的动态选择

    我的应用程序使用祖先宝石 class Location lt ActiveRecord Base has ancestry cache depth gt true has many posts end class User lt Activ
  • 获取当前 Word 文档的 OneDrive 项目 ID

    我正在考虑为 Microsoft Word 构建一个加载项 其中涉及创建当前文档的副本 我找到了我能找到的地方通过 OneDrive API 复制项目 https dev onedrive com items copy htm 但是 这需要
  • 带有 WHERE 子句的 SQL LIMIT

    是否可以将 LIMIT x 与 WHERE 子句一起使用 如果是这样 怎么办 我正在尝试这样做 select from myVIew LIMIT 10 where type 3 但我收到以下错误 ERROR syntax error at
  • Node.js Express:在 app.get() 和 app.post() 之前对每个 HTTP 请求执行钩子?

    我不想将身份验证功能放在每个的顶部app get 我如何在每个请求之前执行代码app get 在路由之前设置中间件 function myMiddleware req res next if req method GET Do some c
  • T-SQL 中的 EXEC 忽略 CONCAT_NULL_YIELDS_NULL

    对于任何版本的 Sql Server 我都无法理解为什么在以下脚本中 EXEC 返回 GetDate 的结果 我预计没有结果 SET CONCAT NULL YIELDS NULL ON DECLARE sql select nvarcha
  • 可以在 Visual Studio 的输出窗口中查看 OutputDebugString 的输出吗?

    我正在使用 C 和 Visual Studio 2010 当我使用OutputDebugString要写入调试信息 它应该显示在输出窗口中吗 我可以看到输出OutputDebugString in 调试视图 https technet mi
  • iText7 将 PDF 转换为图像

    请告诉我在iText7中可以使用什么方法将pdf转换为图像 在 Itexsharp 中 有一个将 pdf 文件转换为图像的选项 以下是链接 使用 iTextSharp 将 PDF 转换为图像http www c sharpcorner co
  • 在 spring 中根据属性文件创建 bean 列表

    我想在 spring 中根据属性文件创建 bean 列表 为了说明问题 假设我有一个ClassRoom public class ClassRoom private List
  • Django 管理搜索:如何覆盖默认处理程序?

    我希望自定义跨 search fields 进行搜索查询的方式 有没有一种方法可以做到这一点 而无需深入 Django 代码或创建完全独立的视图 例如 我想返回 querystring split 的每个项目的查询集的并集 因此 搜索 ap
  • HTTPS POST 请求 Python,返回 .csv

    我想向 HTTPS 站点发出发布请求 该站点应以 csv 文件响应 我有这个Python代码 try conn httplib HTTPSConnection host www site com port 443 gt 给出 BadStat
  • C# 中顺序循环为何比并行循环运行得更快?

    我尝试了一个非常小的例子 using System using System Collections Generic using System Linq using System Text using System Threading Ta
  • Android 布局权重没有像我想象的那样工作

    下列的android layout weight 是什么意思 https stackoverflow com questions 3995825 what does androidlayout weight mean 我有这个
  • Flash AS3跨域绕过问题

    我目前正在我的网站上托管一个 Flash 游戏 网址为 https 我添加了一个跨域文件 指定我只允许从托管我的 Flash 应用程序的网站进行访问 如果我下载 swf 文件并尝试从本地计算机运行它 它不会让我运行 这就是我想要的 但是 如
  • 如何在 Backbone 中处理日期?

    我将日期以 DATETIME 格式存储在 MySQL 数据库中 从数据库中获取模型时 日期 DATETIME 格式 将转换为模型中的日期对象初始化方法 到目前为止 一切都很好 将模型保存到服务器时 需要将日期对象转换回 DATETIME 格
  • 带有未绑定列的 Devexpress 网格

    我有一个 DevExpress 网格 我想在其中添加一个未绑定的复选框以便能够选择某些项目 选择完成后 我按下一个按钮 我必须循环网格才能获取所有选定的项目 它必须是一个复选框 我尝试过使用多选网格 但用户无法使用它 我已经尝试了在支持网站
  • mongodb文档更新后什么时候会过期?

    我在 mongodb 中有一个文档集合 其中expireAfterSeconds在日期类型索引上设置的属性 为了便于讨论 这些文件被设置为一小时后过期 当我更新此集合中的文档时 会发生以下哪一项情况 a 该文件将在一小时后过期origina