找到与mongodb中的集合不同的内容

时间:2016-10-25 17:39:12

标签: java mongodb mongodb-java mongodb-java-3.3.0

我们之前用于从集合中查找不同元素的实现曾经是:

List<String> names = mongoClient.getDB(dbName).getCollection(collectionName).distinct(NAME_KEY);

尝试使用mongo 3.3.0+将其升级到当前实现,如下所示:

List<String> names = mongoClient.getDatabase(dbName)
                        .getCollection(collectionName, TDocType.class)
                        .distinct(NAME_KEY, String.class); // compile error - required Class<TResult> 

还尝试了

.distinct(NAME_KEY, TDocType.class)  // doesn't work                      

在这种情况下,迭代的目标类型是什么?

编辑 - 问题与Get distinct records values不重复,因为mongodb-java-driver的升级实施已发生变化。

1 个答案:

答案 0 :(得分:3)

你可以尝试这样的事情。

DistinctIterable<String> iterable = mongoClient.getDatabase(dbName).
            .getCollection(collectionName, TDocType.class).distinct(NAME_KEY, String.class);
MongoCursor<String> cursor = iterable.iterator();
List<String> list = new ArrayList<>();
while (cursor.hasNext()) {
    list.add(cursor.next());
 }