1 个回答

在你的查询中,我没有看到"expireAt"字段。MongoDB的TTL索引依赖于具有"expireAt"字段的文档,该字段通常包含一个日期类型的值。创建TTL索引后,MongoDB会在后台定期扫描文档,删除过期的文档。

要使TTL索引正常工作,你要确保在插入或更新文档时添加"expireAt"字段。你需要在每个文档中添加一个"expireAt"字段,该字段的值是一个Date对象,表示文档何时过期。

你可以在插入文档时添加一个"expireAt"字段,该字段将在24小时后过期:

db.over_flow_price.insert({
    "city_id" : "3101",
    "app_name" : "顺丰",
    "over_flow_price" : "",
    "total_price" : "15",
    "stratagy_id" : "665",
    "time_stamp" : "2023-04-12 19:20:48",
    "expireAt" : new Date(Date.now() + 24 * 60 * 60 * 1000)
})

在这个例子中,"expireAt"字段的值是当前时间加上24小时。一旦你在文档中添加了"expireAt"字段,MongoDB的TTL索引应该能正常工作,并在文档过期后自动删除它们。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进