dog*_*oga 5 mongodb aggregation-framework spring-data-mongodb
我有一种情况,我想在ApielemMatch提供的方法调用中提供 3 个条件org.springframework.data.mongodb.core.query.Criteria。
Inventory 集合看起来像这样 -
{
"_id" : "H-P3NCDST45"
"booking" : [
{
"updateDate" : ISODate("2018-01-29T13:32:03.789Z"),
"status" : "STARTED",
"message" : "abc"
},
{
"updateDate" : ISODate("2018-01-29T13:32:04.789Z"),
"status" : "PENDING",
"message" : "def"
},
{
"updateDate" : ISODate("2018-01-29T13:33:04.789Z"),
"status" : "CONFIRMED",
"message" : "abc"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想做类似下面的查询。从inventory集合中获取所有文档,这些文档在booking数组中至少有一个嵌入文档,其状态为“STARTED”并且updateDate介于<start>和<end>日期之间,即从给定<start>和<end>日期之间开始/启动的库存中获取所有预订。
db.inventory.find({"booking": { $elemMatch: { status: "STARTED",updateDate: { $gte: ISODate("2018-01-01T14:04:34.447Z"), $lte: ISODate("2018-01-20T14:04:34.447Z")}}}})
Run Code Online (Sandbox Code Playgroud)
标准 Api 提供criteria.elemMatch(Criteria c). 如何在此elemMatch(c)方法调用中传递多个条件?
你可以试试
Criteria criteria =
Criteria.where("booking").
elemMatch(
Criteria.where("status").is("STARTED").
and("updateDate").gte(date1).lte(date2)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1310 次 |
| 最近记录: |