gpt4 book ai didi

java - 如何在MongoDB Java中从键值对中分离值,并将值相加

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:19 25 4
gpt4 key购买 nike

下面的代码只投影一个带有键值对的字段,问题是如何分离值并将它们相加并求平均值。

private static void selectAllRecordByRecordNumber(DBCollection collection) {
BasicDBObject whereQuery = new BasicDBObject();
BasicDBObject whereQuery1 = new BasicDBObject();
BasicDBObject whereQuery2 = new BasicDBObject();
BasicDBObject fields = new BasicDBObject("pr", 1);
fields.put("_id", 0);
int TotalPseudorange=0;
whereQuery.put("st", 17);
whereQuery2.put("pr",whereQuery);
whereQuery1.put("pr",new BasicDBObject("st",17));
DBCursor cursor = collection.find(whereQuery,fields);
TotalPseudorange = TotalPseudorange + cursor.count();
int count=cursor.count();
int index_count=0;
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
System.out.println("The calculation is complete & Done");
System.out.println(count);
}

最佳答案

我认为您正在迭代对象中寻找 .get() 方法:

while(cursor.hasNext()) {
System.out.println(cursor.next().get("pr"));
}

然后您可以将上面的内容替换为以下内容以获得 java8-fashion 中的平均值。

    StreamSupport.stream(Spliterators.spliteratorUnknownSize(cursor,
Spliterator.ORDERED), false)
.mapToDouble(item -> ((Number)item.get("pr")).doubleValue() )
.summaryStatistics()
.getAverage();

注意:我不太确定 get 的返回类型是什么,但我认为直接转换为 double 也可能是安全的。

关于java - 如何在MongoDB Java中从键值对中分离值,并将值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49876460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com