mongoDB在查询

时间:2017-10-13 18:07:58

标签: spring mongodb mongodb-query

我有两个实体,课程和主题如下,

@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;
...................
}

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

有什么方法可以在查询中写这个。

我正在使用spring的mongorepository

1 个答案:

答案 0 :(得分:0)

MongoDB本机查询:

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

相应的Spring Data MongoDB查询:

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