在 mongodb 中查找不同于集合的内容
Finding distinct from collections in mongodb
我们以前从集合中查找不同元素的实现是:
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
在这种情况下,可迭代对象的目标类型应该是什么?
Edit - 这个问题不是 Get distinct records values 的重复,因为实施已经改变了 [= 的升级14=].
你可以试试这个。
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());
}
我们以前从集合中查找不同元素的实现是:
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
在这种情况下,可迭代对象的目标类型应该是什么?
Edit - 这个问题不是 Get distinct records values 的重复,因为实施已经改变了 [= 的升级14=].
你可以试试这个。
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());
}