Java MongoClient-在集合上调用Aggregate时出现NoClassDefFoundException

时间:2019-02-28 08:33:41

标签: mongodb mongodb-java

我正在为项目使用mongodb驱动程序版本3.10.1,并且遇到以下错误。我有以下查询:

mongodbclient.getDatabase("test").getCollection("testColl")
                .aggregate(Arrays.asList(Filters.eq("_id","theID")));

此查询抛出一条执行语句:

NoClassDefFound for com/mongodb/client/AggregationLevel

在mongoshell上针对数据库的相同查询返回正确的结果。即使我将一个空列表传递给聚合,我也会遇到相同的异常。这是mongodb驱动程序中的错误,还是我在这里错过了一切?

1 个答案:

答案 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方法开始工作。 伤心,但真实。