【发布时间】:2016-04-20 13:59:08
【问题描述】:
我正在处理集合中的自动过期文档。 Java 应用程序根据 Mongo TTL 文档创建一个索引。
coll.createIndex(new Document("Expires", 1).append("expireAfterSeconds", 0));
插入文档时,我将Expires 字段设置为未来的Date。对于此测试,我将其设置为未来 1 分钟。
我已验证日期正确存在,索引似乎正确,并且我已经等待了 10 多分钟(即使 ttl 运行器每 60 秒运行一次),但文档仍然存在。
{
"_id" : ObjectId("569847baf7794c44b8f2f17b"),
// my data
"Created" : ISODate("2016-01-15T02:02:30.116Z"),
"Expires" : ISODate("2016-01-15T02:03:30.922Z")
}
我还能错过什么?以下是索引:
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "prism.prismEventRecord"
},
{
"v" : 1,
"key" : {
"Location.X" : 1,
"Location.Z" : 1,
"Location.Y" : 1,
"Created" : -1
},
"name" : "Location.X_1_Location.Z_1_Location.Y_1_Created_-1",
"ns" : "prism.prismEventRecord"
},
{
"v" : 1,
"key" : {
"Created" : -1,
"EventName" : 1
},
"name" : "Created_-1_EventName_1",
"ns" : "prism.prismEventRecord"
},
{
"v" : 1,
"key" : {
"Expires" : 1,
"expireAfterSeconds" : 0
},
"name" : "Expires_1_expireAfterSeconds_0",
"ns" : "prism.prismEventRecord"
}
]
【问题讨论】:
-
你能告诉我们 db.coll.getIndexes() 从 shell 的内容吗?只是想确认索引是否正常。
-
将结果添加到我的问题中
标签: mongodb