mongodb를 쿼리하여 저자 이름이 "Vinod"인 모든 발행물을 검색하는 방법은 무엇입니까?스프링 mongodb @DBRef 기본 쿼리에서 상위 필드를 검색하는 쿼리
여기 내 출판 클래스
@Document(collection = "publications")
public class Publication {
@Id
private String id;
private String title;
private Date publicationDate;
@DBRef
private Author author;
//getter and setters here
}
입니다 그리고 내 저자 클래스는이이 데이터베이스에 저장되는 방식이다
@Document(collection = "authors")
public class Author {
@Id
private String id;
@Indexed(unique = true)
private String username;
private String firstName;
private String lastName;
//getter and setters here
}
입니다.
출판
{
"_id" : ObjectId("5a339cc4e193d31c47916c2c"),
"_class" : "com.publication.models.Publication",
"title" : "Some title",
"publicationDate" : ISODate("2017-12-15T09:58:28.617Z"),
"author" : {
"$ref" : "authors",
"$id" : ObjectId("5a339cc0e193d31c47916ad0")
}
}
그리고 저자 :
{
"_id" : ObjectId("5a339cc0e193d31c47916ad0"),
"_class" : "com.publication.models.Author",
"username" : "abcd0050",
"firstName" : "Vinod",
"lastName" : "Kumar"
}
이것은 내가 쿼리해야하는 방법이다.
BasicQuery query = new BasicQuery("{ author.name : 'vinod' }");
Publication test = mongoOperation.find(query, Publication.class);
을 할 수있는 방법 쿼리하는
일을해야합니까? 스프링 데이터 저장소를 사용하고 있습니까? – pvpkiran
@pvpkiran - 쿼리로 질문을 업데이트했습니다. – VK321