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