Mongo Db查询Json内的Json过滤器

时间:2018-10-23 09:41:55

标签: mongodb

有一个mongo表实体。

     @Document(collection = "A")
        public class A {
        private int id;
        private List<Student> allstud;
        //setter and getter
        }

      public class Student {
        private int id;
private String name
        private DateTime  JoinDate;
        //setter and getter
        }

加入日期可以是一年中的任何日期;  该查询,以便可以获得8个月的加入学生。

db.A.find({
    "allstud.JoinDate": {
        "$gte": ISODate("2018-08-01T00:00:00.000+00:00"),
        "$lte": ISODate("2018-08-29T00:00:00.000+00:00")
    }
});

但是上面的查询给出了错误的列表。所有日期都来了。

1 个答案:

答案 0 :(得分:0)

   db.A.aggregate([
    { $unwind :'$allstud'},
    { $match : {
        "allstud.joinDate": { $gte:ISODate("2018-08-05T00:00:00.000+00:00"), $lte: ISODate("2018-08-09T00:00:00.000+00:00") }
    }}
    ]);

通过此查询,我得到了正确的答案。但是如何将其转换为Java查询