我有以“标记”数组作为属性的文档。现在我想查询所有不同的标记项。
{
"name": "test1",
"tags": ["tag1","tag2", "tag3"]
},
{
"name": "test2",
"tags": ["tag1"]
}
mongo Shell中的解决方案:
db.ApiModel.distinct("tags")
这给了我:
["tag1", "tag2", "tag3"]
但我怎么能用装腔作势达到同样的效果呢?PanacheMongoEntity不提供特定的distinct方法。我也不知道如何使用find
方法来实现我的目标,或者使用这个方法是否可能。
您可以使用这两种方法中的任何一种从集合test
中获取不同的标记
。
public List<String> getDistinctTags() {
return Tags
.<Tags>mongoCollection()
.distinct("tags", String.class)
.into(new ArrayList<String>());
}
public List<String> getDistinctTags() {
return Tags
.<Tags>streamAll()
.flatMap(e -> e.tags.stream())
.distinct()
.collect(toList());
}
假设tags
类定义如下,并表示Panache实体:
@MongoEntity(collection="test")
public class Tags extends PanacheMongoEntity {
public String name;
public List<String> tags;
// ...
}
我正在测试声纳以确保关闭数据库连接,我有我不明白的额外结果。 我正在使用嵌入的maven版本3.3.9尝试执行eclipse中maven目标“sonar:sonar”的两个版本的代码。 我试过sonarqube服务器的三个版本:5.6.6、6.2和6.4。 使用此代码 关于关闭资源,我有以下问题: sonarqube 5.6.6: 关闭此“连接” 关闭此“准备语句” Sonarqube 6.2:
问题内容: 我目前正在将构建过程从Ant迁移到Maven。我们的应用程序已部署到许多不同的客户,每个客户都有一组独特的依赖项和配置。我可以实现不同的配置文件以对它们进行建模,并从中构建所需的战争。但是,这是一个在编译时发生的过程。 每个版本都标记为SVN,并已上传到我们的内部Nexus存储库。我希望能够采用定义的发行版并根据配置文件对其进行重构。有没有办法做这样的事情?除了个人资料外,我还应该使用
我需要我的logstash conf文件向一个kafka主题发送一条消息,以指示已处理的文档已发送到ElasticSearch。我已经准备好了logstash文件来构造发送到ElasticSearch的数据,但是我需要通过同一个logstash文件向kafka主题发布“是”或“否”消息。
问题内容: 我有一个包含多个文档的mongo集合,假设以下内容(假设出于任何原因,汤姆在2012年都有两名历史老师) 我希望能够查询“汤姆”曾经有过的所有不同的班级,即使汤姆有多个“历史”班级且有多个老师,我只想查询得到最少数量的文档,以便汤姆在所有这些都将显示一次,而“历史记录”只显示一次,而不是查询结果包含重复“历史记录”的多个文档。 我看了一下:http : //mongoengine- o
我想执行一个maven版本,在运行于jdk 1.7的Jenkins安装上编译java 1.8代码 我有一个使用JDK参数插件用Java1.8编译的项目。它在进行常规构建时有效。 当我使用maven发布插件进行maven发布时,它会将JVM与java 1.7相结合,而不是插件上指定的版本。我猜它需要环境中的java版本。 如果我将JAVA_HOME for the job设置为1.8,它就会工作。
例如当前数据结构是:{ "name": "mike" } 业务迭代后变成了:{ "name": "mike", "age" : 20 } 那么如何将前者也都变成例如:{ "name": "mike", "age" : 0 } 来实现类似关系型数据库的效果?还是说做不到只能用回关系型数据库