2

I would like to set the ttl for a collection once, what is the idiomatic way of achieving this when building a java application that uses mongoDB? Do ppl simply apply settings like these in the shell? Or in the application code is it normal to check if a collection is already in the DB, if it is not then create it with the desired options?

Thanks!

4

3 回答 3

4

我再也不会在我的应用程序代码中构建索引了。

我承认我曾经。每次我的应用程序启动时,我都会确保我的所有索引,直到突然有一天,一位初学者开发人员掌握了我的代码并意外删除了我的一个索引序列中的一个字符。

因此,由于在前台处理该索引构建,整个集群冻结并下降。幸运的是,我有许多延迟且非索引的构建从站需要修复,但我总共损失了大约 12 个小时,进而损失了 12 个小时的工作时间。

我建议您不要在应用程序代码中构建索引,而是在mongo控制台中仔细构建。这适用于任何这样的操作,甚至是 TTL 索引。

于 2013-05-17T14:12:22.467 回答
0

您可以在此处记录的集合上设置 TTL 。

使用 Java 驱动程序,我会尝试:

theTTLCollection.ensureIndex(new BasicDBObject("status", 1), new BasicDBObject("expireAfterSeconds", 3600));

hth。

于 2013-05-17T07:58:39.553 回答
-1

设置TTL 是一个索引操作,所以我想每次代码运行时都这样做是不明智的。

于 2013-05-17T10:13:07.100 回答