gpt4 book ai didi

java - 在java中从mongodb中提取的3值的乘法

转载 作者:可可西里 更新时间:2023-11-01 10:29:34 24 4
gpt4 key购买 nike

我在 mongodb 中有一个文档如下:

 "sentiment" : {
"Value" : 0,
"high" : 0
},
"quality" : {
"Value" : 0,
"high" : 0
},
"intensity" : {
"Value" : 0,
"low" : 0
}

现在我想乘以 quality.valueintensity.valuesentiment.value 然后返回结果,这是我的代码:

DBObject groupFields = new BasicDBObject("_id", "$Added");
DBObject project = null;
groupFields.put("value1", new BasicDBObject("$sum",
"$sentiment.Value"));
groupFields.put("value2", new BasicDBObject("$sum",
"$quality.Value"));
groupFields.put("value3", new BasicDBObject("$sum",
"$intensity.Value"));
groupFields.put("count", new BasicDBObject("$sum", 1));
DBObject groupBy = new BasicDBObject("$group", groupFields);
stages.add(groupBy);
DBObject valueMultiply = new BasicDBObject("$multiply", args);
project = new BasicDBObject("_id", 0);
project.put("value", valueMultiply );
AggregationOutput output = collectionG.aggregate(stages);

现在我的问题是这一行:

DBObject valueMultiply = new BasicDBObject("$multiply", args);

我不知道如何做 value1 和 value2 以及 value3 的乘法......

有人能帮忙吗?

最佳答案

您需要构建对 $multiply 的输入运算符作为 Objects 的数组,如

args = new Object[]{"$value1","$value2","$value3"};

并将其用作:

DBObject valueMultiply = new BasicDBObject("$multiply", args);

$multiply 运算符接受 expressions 的数组,一个有效的表达式包括一个字段路径并且在字段路径解析为一个数值之前一直有效。在这种情况下,字段路径 $value1$value2$value3 解析为数字,因此是有效的表达式。

关于java - 在java中从mongodb中提取的3值的乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28803153/

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