java com.mongodb.DBCollection创建一个后台索引

时间:2013-12-26 11:38:11

标签: java mongodb collections indexing

我正在通过我的Java代码创建一个mongodb集合,我想在这个集合上创建索引,但是根据在线教程,我意识到创建一个后台索引是可取的,因为它不会锁定用于创建索引的集合。 相同的代码如下:

 DBCollection ActivityLogCollection = this.db.createCollection(this.mrCollName, new BasicDBObject().append("capped", false));
 ActivityLogCollection.ensureIndex("act");

我如何确保将其创建为背景集合。我尝试使用

DBObject indexOptions = new BasicDBObject();
indexOptions.put("background", true);

然后将其作为

传递
ActivityLogCollection.ensureIndex(indexOptions,"act");

然而,这样做的是创建一个带有键为“背景”的索引。

对此相关的任何帮助都将受到高度赞赏。

谢谢,

Vaibhav的

2 个答案:

答案 0 :(得分:4)

将索引选项作为 second 参数传递给ensureIndex

DBObject indexFields = new BasicDBObject("act", 1);
DBObject indexOptions = new BasicDBObject("background", true);
ActivityLogCollection.ensureIndex(indexFields, indexOptions);

答案 1 :(得分:0)

尝试在一个DBObject本身中设置所有索引选项:

DBObject indexOptions = new BasicDBObject();
indexOptions.put("background", true);
indexOptions.put("name", "act");

现在指定:

ActivityLogCollection.ensureIndex(indexOptions);