Java MongoClient - 在集合上调用`aggregate`时的`NoClassDefFoundException`

问题描述 投票:0回答:1

我使用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-java
1个回答
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方法正在运行。悲伤,但是真的。

© www.soinside.com 2019 - 2024. All rights reserved.