谁能解释一下为什么在 Java 中,当我使用“$out”进行聚合管道时,当我只写以下内容时,不会将结果写入新集合中:
Document match = new Document("$match", new Document("top_speed",new Document("$gte",350)));
Document out=new Document("$out", "new_collection");
coll.aggregate(Arrays.asList(
match,out
)
);
Run Code Online (Sandbox Code Playgroud)
当我保存聚合结果并对其进行迭代时,会创建新集合并且匹配的结果在里面(在这种情况下,Java 显然有错误):
AggregateIterable<Document> resultAgg=
coll.aggregate(Arrays.asList(
match,out
)
);
for (Document doc : resultAgg){
System.out.println("The result of aggregation match:-"+ doc.toJson());
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么。
我有一个 Maven 项目,其存储库有限制,其中之一是 JDK 限制,并且只需要 1.5.0-4、1.6.0-45、1.7.0-80、1.8.0-71。我有 JDK 1.8.0-65,当我进行 MVN 安装时显示以下错误:
Rule 0: org.apache.maven.plugins.enforcer.RequireJavaVersion failed with message:
Detected JDK Version: 1.8.0-65 is not in the allowed range [1.5.0-4,1.5.0-4],[1.6.0-45,1.6.0-45],[1.7.0-80,1.7.0-80],[1.8.0-71,).
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以配置 Maven 以忽略本地安装中的该限制?无需安装其他版本的JDK。先感谢您!
我先搜索谷歌,然后发现了很多关于如何用xpath解析xml文档的结果.我已解析它但想要在String中转换NODELIST并且我已经为它创建了一个方法:
private String processResult(Document responseDocument) throws XPathExpressionException, TransformerException {
NodeList soaphead = responseDocument.getElementsByTagName("xmlTagToTrasform");
StringWriter sw = new StringWriter();
Transformer serializer = TransformerFactory.newInstance().newTransformer();
serializer.transform(new DOMSource(soaphead.item(0)), new StreamResult(sw));
String result = sw.toString();
return result;
}
Run Code Online (Sandbox Code Playgroud)
这种方法工作正常,但变换器<?xml version="1.0" encoding="UTF-8"?>
在结果的标题中添加了一个,我不希望这样.这是该方法的结果:
<?xml version="1.0" encoding="UTF-8"?>
<xmlTagToTrasform>
<xmlTagToTrasform2>
.
.
.
.
</xmlTagToTrasform2>
</xmlTagToTrasform>
Run Code Online (Sandbox Code Playgroud) 如何将正值和负值从一列分成两列.
我有一个表Employee
有一个Salary
正负值的列.我想提取两列NegSalary和PosSalary,如下所示:
Salary ---> NegSalary PosSalary
-1000 -1000 NULL
2000 NULL 2000
1000 NULL 1000
500 NULL 500
Run Code Online (Sandbox Code Playgroud)