我有一个实体人物,由音乐家和政治家继承,还有一个存储库人物存储库。
我正在尝试使用PersonRepository.save(..)将所有三个实体保存到MongoDB的集合“Person”中但是Spring-Data-MongoDB将其保存到3个单独集合“Person”、“Musician”和“Politician”中。
Java代码:
@Document
public class Person {
@Id private String id;
@Indexed private String name;
@TextIndexed private String biography;
}
@Document
public Musician extends Person {
private String something;
}
@Document
public Politician extends Person {
private String somethingElse;
}
@Repository
public interface PersonRepository extends CrudRepository<User, String> {
}
在阅读了一些帖子之后,我不得不为存储库的所有三个实体将集合名称设置到注释@document(collection=“person”)中,以便将其保存到同一个集合中。
它工作得很好,但当我检查MongoDB中的索引时,不知怎么地,我会得到TextIndex是以保存的最后一个实体类命名的。
MongoDB shell:
db.person.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.person"
},
{
"v" : 1,
"key" : {
"_fts" : "text",
"_ftsx" : 1
},
"name" : "Musician_TextIndex",
"ns" : "test.person",
"weights" : {
"description" : 1,
"name" : 10
},
"default_language" : "english",
"language_override" : "language",
"textIndexVersion" : 3
}
]
是否有任何方法可以设置TextIndex名称,而不是以我正在保存的实体类命名它。试着搜索能找到任何。
目前,无法使用基于注释的设置来设置textindex
的索引名称。为此,请通过模板
使用indexoperations
手动设置文本索引。
template.indexOps(Person.class)
.ensureIndex(
new TextIndexDefinitionBuilder()
.named("YourIndexNameHere")
.onField("biography")
.build());
有人尝试过在Spring-Boot中禁用mongodb的自动配置吗? 我正在使用spring-data-mongoDB试用spring-boot;使用基于java的配置;使用Spring-Boot1.2.1.Release,我导入了spring-boot-starter-web及其父pom来进行依赖关系管理。我还导入了spring-data-mongodb(也尝试了spring-boot-star
我开始学习使用实体图来减少N1问题。但我面临一个问题,findAll方法返回重复数据。 < code >人 我创建一个 pom.xml代码 我的代码出了什么问题?方法 都不能使用 EntityGraph?
我有一套文件。每个文档有两个字段—“代码”和“状态”。我的mongodb集合包含以下文档: 我想按每个代码的状态查找计数。我想要的输出如下所示: 如何使用spring data mongodb实现这一点?我对mongodb很陌生。 更新我已成功编写mongodb查询。这是: 有人能帮助您在spring data mongodb中编写此查询吗?
我写了一个应用程序,使用Spring MongoRepository连接到产品销售的集合,其中包含所有产品的销售数据。 现在,我面临一个问题,因为我现在有多个产品销售集合,而不是一个集合,每个集合包含一个产品。所有集合的结构仍然相同,但现在每个集合的名称类似于“Sales_123”、“Sales_456”,其中数字后缀是产品Id。 这意味着我不能再使用文档注释来指定集合名称。我仍然可以在运行时将集
我是Spring Data MongoDB的新手,我正在尝试用Spring Data MongoDBJava实现聚合查询。我尝试过从这个问题中搜索,并使用进行搜索,但仍然没有结果。 我的数据格式: 我的查询: 这是我在Javascript后端使用的查询,我可以用Mongoose很容易地做到这一点。然而,我对它的Java实现有一些困难。 当我尝试运行此程序时,会出现以下错误: 当我删除从组聚合中,我
我正在浏览Spring Data MongoDB参考文档,发现示例有点过于简单。 特别是,我试图了解如何在并发环境中处理陈旧数据。例如,假设我有以下实体: 但是我有点担心,如果我想做的每种类型的更新都需要一个新的方法,那么我的存储库接口将无法控制地增长。 我意识到我实际上还没有提出一个问题,所以现在开始了:在MongoDB中使用Spring数据设计应用程序的最佳实践是什么?