如何使用java / scala在mongodb中使用复合索引

时间:2016-10-29 12:00:23

标签: java mongodb scala mongodb-java mongodb-java-3.3.0

我想在ab这两个字段上创建一个索引,但我希望b字段只是唯一的我不知道如何在使用复合索引时实现此目的请帮助这里是代码

var index=collectionMongo("test").createIndex(new BasicDBObject("a", 1))

var index1=collectionMongo("test").createIndex(new BasicDBObject("b", 1),new BasicDBObject("unique", true))

如何在复合索引中执行我想要的任务请帮助

1 个答案:

答案 0 :(得分:0)

我看待它的方式,你已经做好了,因为index intersection应该为你处理复合索引。您已为a创建了索引,并为b创建了唯一索引,当您执行同时接受这两个字段的查询时,mongo将同时使用这两个索引。

您可以通过运行db.find({"query involving a and b here"}).explain("executionStats")

来查看是否正确使用了索引

如果您需要索引许多字段(单个和复合),则交集索引可能有利于复合索引,因为它会减少整体所需的磁盘空间。