@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")
}
});
但是上面的查询给出了错误的列表。所有日期都来了
使用此查询可获得正确的结果
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查询