春季启动MongoTemplate多集合JOIN

时间:2020-04-21 07:02:43

标签: mongodb spring-boot mongotemplate

我是mongoDB的新手,我遇到一种情况,例如我有3个集合,需要将所有3个集合连接起来并返回一个集合列表数据。

Exa 表1集合

 @Document(collection= "table1")
    public class Table1Entity implements Serializable {

    private static final long serialVersionUID = 1L;

        @Id
        @Field
        private ObjectId id;

        @Field
        private String name;

        //getter setter

    }

    @Document(collection= "table2")
    public class Table2Entity implements Serializable {

    private static final long serialVersionUID = 1L;

        @Id
        @Field
        private ObjectId id;

        @Field
        private String table1Id;

        @Field
        private String table3Id;

        @Field
        private String name;

        //getter setter

    }

    @Document(collection= "table3")
    public class Table3Entity implements Serializable {

    private static final long serialVersionUID = 1L;

        @Id
        @Field
        private ObjectId id;

        @Field
        private String userId;

        @Field
        private String name;

        //getter setter

    }

所以我的userId = 1。 所以我需要检入table3的{​​{1}}集合中,然后返回所有userId = 1记录

像mysql

table1

那么我该如何在mongoTemplate中创建类似的查询

SELET t1.* from TABLE1 as t1 JOIN TABLE2 as t2 ON t1.id = t2.table1Id JOIN TABLE3 as t3 ON t2.table3Id = t3.id WHERE t3.userId = 1

请让我知道有人知道

0 个答案:

没有答案