我有必要从 mongo 集合中删除所有数据。丢弃收集的工作速度比collection.remove(new BasicDBObject())
. 但它也删除了索引定义。因此,我想在收集删除后恢复索引定义。
一般来说,我有以下计划:
- 在删除之前获取所有索引定义: http ://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-GettingaListofIndexesonaCollection
- 删除后重新创建定义:http ://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-CreatingAnIndex
对我来说,问题是应该检索/传递以重新创建索引的确切值。例如,将对所有类型的索引进行正确的工作:
List<DBObject> storedDefinitions = coll.getIndexInfo();
coll.drop();
for (DBObject storedDefinition : storedDefinitions) {
coll.createIndex(storedDefinition.get("key"));
}
如果不是 - 实现我的目标的最佳方式是什么?
谢谢你的帮助!