从 mongodb 中提取的 3 值乘以 java

multiplication of 3 value extracted from mongodb in java

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

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

现在我想乘 quality.valueintensity.valuesentiment.value 然后 return 结果是我的代码:

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 解析为数字,因此是有效的表达式。