我使用mongodb驱动程序版本3.10.1为我的项目,我面临以下错误。我有以下查询:
mongodbclient.getDatabase("test").getCollection("testColl")
.aggregate(Arrays.asList(Filters.eq("_id","theID")));
此查询引发异常说:
NoClassDefFound for com/mongodb/client/AggregationLevel
mongoshell对数据库的相同查询返回正确的结果。即使我将空列表传递给聚合,我也会得到相同的异常。这是mongodb驱动程序中的错误还是我错过了什么?
问题是,mongodb提供的mongodb的默认依赖项:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>3.10.1</version>
</dependency>
不包含核心mongodb所需的依赖项:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
<version>3.10.1</version>
</dependency>
和BSON:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>3.10.1</version>
</dependency>
添加它们之后,aggregate
方法正在运行。悲伤,但是真的。