2017-03-21 24 views
0
final DBObject group = new BasicDBObject("$group", groupFields); 
DBObject sort = new BasicDBObject("$sort", new BasicDBObject("NAME", -1)); 
AggregateIterable <Document> aggregate = collection.aggregate((List<? extends Bson>) asList(group,sort)); 

このコードは、このエラーを投げている:mongodb javaには互換性のない型のエラーがありますか?

could not parse error message: required: List found: List

私はこれをどのように解決することができますか?

答えて

0

Javaドライバ2.x apiと3.xドライバapiを混在させています。 DBCollectionDB及びBasicDBObject/DBObjectが2.xのクラスであるのに対し、

MongoCollectionMongoDatabaseDocument/Bsonは3.xのクラスです。

3.xドライバを使用しているようですので、以下のようにします。ここhttp://mongodb.github.io/mongo-java-driver/3.4/driver/getting-started/quick-start/

+0

MongoClient mongoClient = new MongoClient(); MongoDatabase db = mongoClient.getDatabase("db"); MongoCollection<Document> collection = db.getCollection("collection"); BsonField id = Accumulators.first("ID", "$ID"); BsonField name = Accumulators.first("NAME", "NAME"); BsonField amount = Accumulators.sum("amount", "$amount"); Bson group = Aggregates.group("$NAME", id, name, amount); Bson sort = Aggregates.sort(Sorts.descending("NAME")); List<Document> results = collection.aggregate(Arrays.asList(group, sort)).into(new ArrayList<>()); 

詳しい情報は、あなたがに質問を見て、そこに私を助けることができる[リンク](http://stackoverflow.com/q/42949980/7720299)@Veeram – svm

関連する問題