2017-10-13 84 views
0

找我有两个实体,当然并受如下,MongoDB的查询

@Document(collection = "course") 
public class Course implements Serializable { 
{ 
........... 
    @Field("course_name") 
    private String courseName; 

    @Field("subjectIds") 
    private List<String> subjectIds; 
... 
} 


@Document(collection = "subject") 
public class Subject implements Serializable { 

    private static final long serialVersionUID = 1L; 
    @Id 
    private String id; 

    @Field("subject_name") 
    private String subjectName; 
................... 
} 

这里“课程”包含主题的ID列表。 所以,我有一个主题ID说(“59ce80a4a2e7f329eccac601”),我需要找到所有的课程,这个主题ID将出现在课程的subjectIds属性列表中。

有没有什么办法可以在查询中写这个。春天的

我使用mongorepository

+0

你可以试试'名单 findBySubjectIds(字符串subjectId); ' – Veeram

回答

0

MongoDB的本地查询:

db.course.find({subjectIds: { $elemMatch: { $eq: "59ce80a4a2e7f329eccac601"}}}) 

相应的春天数据的MongoDB查询:

@Query("{'subjectIds': {\$elemMatch: {\$eq: ?0}}}")