我必须将属于多个实体的数据存储在一个集合中。但是当我查询然后返回时,我不希望结果中出现不需要的记录。我们如何使用Spring实现这一点?以下是我迄今为止所做的。
1.我在实体中给出相同的集合名称,如下所示。
@Document(collection = "livingThings")
@Data
public class AnimalEntity {
//contains id, type, bla, bla
}
@Document(collection = "livingThings")
@Data
public class HumanEntity {
//contains id, gender, address
}
2、我创建独立的mongoRepository接口
public interface AnimalRepository implements MongoRepository<AnimalEntity, String> {
}
public interface HumanRepository implements MongoRepository<HumanEntity, String> {
}
3.问题是
当我做animalRepo的时候。芬德尔或humanRepo。芬德尔,我收集了所有的记录。
4.我所期望的
AnimalRepo.findAll仅返回文档结构与AnimalEntity相同的记录。
非常感谢您的时间和耐心来参加这个查询。
MongoDB会自动向集合中的实体添加\u类字段。尽管这不是最好的解决方案,但您可以尝试以下方法:
@Query("_class:your package name here.AnimalEntity")
public AnimalEntity findAllAnimals();
问题内容: 我想知道是否有这样一种方法来遍历java中每个循环的扩展扩展的多个集合。 所以像这样: 谢谢 问题答案: 您可以使用Guava的:
本文向大家介绍SpringDataMongoDB多文档事务的实现,包括了SpringDataMongoDB多文档事务的实现的使用技巧和注意事项,需要的朋友参考一下 一、安装MongoDB4.0.3(××) 1.1、官方安装文档 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 1.2、tar.gz包下载地址 h
问题内容: 什么类型的Java集合可为同一键返回多个值? 例如,我想为键300返回301,302,303。 问题答案: 您可以使用a 作为您的值: 另外,您可以按照biziclop的建议从Guava 中使用它,它的语法更加简洁,并且还有许多其他非常有用的实用程序方法:
我试图找到这个问题的答案,但在kubernetes文档或任何问答论坛中都找不到。 我有一个运行有4个节点的kubernetes集群。是否可以创建第二个集群,重用前一个集群中的一个或多个节点?或者一个节点被限制在单个kubernetes集群中? 我正在使用RKE(用于部署k8集群的牧场工具)运行实际的集群,我发现这个问题让我怀疑这种可能性。 感谢您的澄清。
使用Spring-Data,您可以使用@Document注释来指定将对象保存到哪个集合。假设我有两个类,学生和教师,都持久化到人员集合中。当我执行以下代码时: 结果包含学生和教师。查看由Spring数据创建的数据,每个文档都包含一个“\u class”字段,该字段指示它从哪个类持久化。 这是在查找中未用作过滤器以仅返回教师的字段?除了这样做之外,我如何仅查询教师: