【发布时间】:2011-10-11 11:01:22
【问题描述】:
我有必要从 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"));
}
如果不是 - 实现我的目标的最佳方式是什么?
感谢您的帮助!
【问题讨论】:
标签: java mongodb indexing mongo-java