Nam*_*man 5 java mongodb mongodb-java mongodb-java-3.3.0
我们以前从集合中查找不同元素的实现曾经是:
List<String> names = mongoClient.getDB(dbName).getCollection(collectionName).distinct(NAME_KEY);
Run Code Online (Sandbox Code Playgroud)
尝试使用 mongo 3.3.0+ 将其升级到当前实现是:
List<String> names = mongoClient.getDatabase(dbName)
.getCollection(collectionName, TDocType.class)
.distinct(NAME_KEY, String.class); // compile error - required Class<TResult>
Run Code Online (Sandbox Code Playgroud)
也尝试过
.distinct(NAME_KEY, TDocType.class) // doesn't work
Run Code Online (Sandbox Code Playgroud)
在这种情况下,可迭代对象的目标类型是什么?
编辑- 该问题不是获取不同记录值的重复,因为实现在mongodb-java-driver.
你可以尝试这样的事情。
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());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2594 次 |
| 最近记录: |