我有必要从mongo集合中删除所有数据。丢弃集合的速度比collection.remove(new BasicDBObject())
快。但它也删除了索引定义。因此,我想在收集丢弃后恢复索引定义。
总的来说,我有以下计划:
对我而言,问题是应该为索引重新创建检索/传递的确切值。例如。将遵循所有类型索引的正确工作:
List<DBObject> storedDefinitions = coll.getIndexInfo();
coll.drop();
for (DBObject storedDefinition : storedDefinitions) {
coll.createIndex(storedDefinition.get("key"));
}
如果不是 - 实现目标的最佳方式是什么?
感谢您的帮助!
答案 0 :(得分:0)
你很亲密。您需要读取检索到的索引的索引选项,并使用该方法的createIndex(DBObject key,DBObject options)版本将这些索引应用于新创建的索引。