使用Spring-Data,可以使用@Document注释来指定将对象保存到哪个集合。假设我有两个班,学生和老师,都坚持到人员收藏。当我执行以下代码时:Spring-Data mongodb查询存储在同一集合中的多个类
mongo.find(new Query(), Teacher.class);
结果包含学生和老师。查看由Spring-Data创建的数据,每个文档都包含一个“_class”字段,用于指示它从哪个类继承。
这是字段没有用作查找过滤器只返回老师?我如何查询只有教师以外的其他人做这个:
mongo.find(new Query().addCriteria(where("_class").is(Teacher.class.getCanonicalName()), Teacher.class);
感谢奥利弗,如果我拿出一个很好的解决方案,我会养一票。 – ltfishie
通过mongodb Jira,我遇到了这张票https://jira.springsource.org/browse/DATAMONGO-128这是固定的1.0.M3市场。这仍然是来源? – ltfishie
是的,但这并没有触及你的情况。门票可以将'Person'和'Teacher'存储在同一个集合中,并能够从中查询对象并获得Person和Teacher的实例化(因此是所需的类型信息)。它实际上并没有考虑改进“只读”教师对象“场景。 –