我正在通过我的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的
答案 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);