Mongo Java-driver:收集删除后的重新创建索引

时间:2011-10-11 11:01:22

标签: java mongodb indexing mongo-java

我有必要从mongo集合中删除所有数据。丢弃集合的速度比collection.remove(new BasicDBObject())快。但它也删除了索引定义。因此,我想在收集丢弃后恢复索引定义。

总的来说,我有以下计划:

  1. 在删除之前获取所有索引定义: http://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-GettingaListofIndexesonaCollection
  2. 放弃后重新创建定义:http://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-CreatingAnIndex
  3. 对我而言,问题是应该为索引重新创建检索/传递的确切值。例如。将遵循所有类型索引的正确工作:

    List<DBObject> storedDefinitions = coll.getIndexInfo();
    coll.drop();
    for (DBObject storedDefinition : storedDefinitions) {
      coll.createIndex(storedDefinition.get("key"));
    }
    

    如果不是 - 实现目标的最佳方式是什么?

    感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你很亲密。您需要读取检索到的索引的索引选项,并使用该方法的createIndex(DBObject key,DBObject options)版本将这些索引应用于新创建的索引。