我正在为项目使用mongodb驱动程序版本3.10.1,并且遇到以下错误。我有以下查询:
mongodbclient.getDatabase("test").getCollection("testColl")
.aggregate(Arrays.asList(Filters.eq("_id","theID")));
此查询抛出一条执行语句:
NoClassDefFound for com/mongodb/client/AggregationLevel
在mongoshell上针对数据库的相同查询返回正确的结果。即使我将一个空列表传递给聚合,我也会遇到相同的异常。这是mongodb驱动程序中的错误,还是我在这里错过了一切?
答案 0 :(得分:0)
问题是,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
方法开始工作。
伤心,但真实。