Mongodb MongoTemplate如何包含DBref的特定字段
嗨,我有一个名为problem的结构,内部有章,章有DBref到BookEdition,BookEdition有DBref到BookMongodb MongoTemplate如何包含DBref的特定字段,mongodb,spring-data,dbref,spring-mongo,Mongodb,Spring Data,Dbref,Spring Mongo,嗨,我有一个名为problem的结构,内部有章,章有DBref到BookEdition,BookEdition有DBref到Book Problem { String name, @DBRef Chapter chapter; } Chapter { String name, @DBRef BookEdition edition; } BookEdition { String name, Book book; } 如果我只是获取需要大量时间才能获取的问题,那么
Problem {
String name,
@DBRef
Chapter chapter;
}
Chapter {
String name,
@DBRef
BookEdition edition;
}
BookEdition {
String name,
Book book;
}
如果我只是获取需要大量时间才能获取的问题,那么我只想使用fields()包含我需要的信息。include()但是我无法找到像chapter、bookedition或book这样的DBRefed字段
Query q = new Query().addCriteria(Criteria.where("html").ne("").ne(null)
.and("chapter.$id").ne(""));
q.fields().include("id")
.include("name")
.include("html");
很好,但如果我只想要章节id
Query q = new Query().addCriteria(Criteria.where("html").ne("").ne(null)
and("chapter.$id").ne(""));
q.fields().include("id")
.include("name")
.include("html")
.include("chapter._id")
.include("chapter.bookEdition.isbn13")
.include("chapter.$bookEdition.$editionNumber")
.include("chapter.$bookEdition.$book.subjectId")
.include("chapter.$bookEdition.$book.title");
它不获取章节id,bookedition。我希望我能解释我的问题。有没有办法指定要包含的DBRef的特定字段 不能为DBREF定义字段规格,因为它们只能一次使用所有字段获取。通常建议不要使用DBRefs(不是我们,而是MongoDB的家伙,请参阅),但要注意应用程序代码中的关联对象。这意味着您更愿意存储一个ID,然后继续并发出一个专用查询来解析相关对象。这允许您在加载相关对象时再次使用字段规范。FYI:DBRef就像一个“无类型”外键——MongoDB不能进行连接。那么,任何引用都是作为一个或多个附加查询独立于第一个查询获取的?我不熟悉MongoTemplate,但考虑到您使用的语法,它似乎不太可能需要额外的查询,然后只检索属性的子集。我改进了格式,但有一些分号放错了位置。你能自己修吗。