У меня 80 000 документов в моем mongodb. Я запрашиваю эти документы с помощью драйвера Java. Я попытался отсортировать документы на основе определенного поля, а затем применить к этому результату отдельный фильтр. Функция сортировки работает нормально, но я не могу получить отдельные документы. Я приложил свои примеры работы.Сортировка и отличие Mongodb в Java 3.2
Document query = new Document("RetweetCount",-1);
MongoCursor<Document> cursor = collection.find().sort(query).iterator();
try{
while(cursor.hasNext()) {
Document dr = (Document) cursor.next();
String stat = dr.getString("status");
int retweetcount = dr.getInteger("RetweetCount");
//Sort works fine. I have to apply distinct here!!! distinct is based on status field
System.out.println(retweetcount+"--->"+stat);
}
}finally{
cursor.close();
}
}
У вас есть взгляд на http://api.mongodb.com/java/3.2/com/mongodb/operation/DistinctOperation.html, если вы дадите мне ваш образец db, я могу немного вычислить его – Newton
@Netwon , Моя структура db похожа на {status: x, retweetcount: 2}, {status: y, retweetcount: 5}, {status: x, retweetcount: 3}. Каждый раз он сохраняет новый статус и его retweetcount. Я должен получить верхний статус retweetcount для статуса, но у меня есть дублирующий статус в моем db. Я хочу получить статус: x и retweetcount: 3, который имеет самый высокий уровень retweetcount для этого статуса. – prabhu
Вы можете отправить резервную копию своей коллекции? – Newton