【发布时间】:2018-11-28 14:31:33
【问题描述】:
我有一个包含 365 个文档的集合。每个文档如下:
{
date: "2018-11-27T00:00:00.000Z",
title: "Went to school"
},
{
date: "2018-11-28T00:00:00.000Z",
title: "Bought a car"
}
我想按多个数据范围过滤文档。 示例:
- 仅显示在
2018-01-04和2018-11-24之前创建的文档 - 结果不应包含在
2018-05-06-2018-06-07等区间内创建的文档
到目前为止,我得到了这个:
const dates = await Calendar.aggregate(
[{
$match: {
$and: [{
date: {
$not: {
$lte: new Date(2018, 0, 7),
}
}
},
{
date: {
$not: {
$gte: new Date(2018, 10, 15)
}
}
},
{
date: {
$not: {
$gt: new Date(2018, 6, 31),
$lt: new Date(2018, 7, 15)
}
}
}
]
}
},
{
$project: {
title: 1,
date: 1
}
}
]
).sort('date')
提前谢谢你!
【问题讨论】:
标签: mongodb mongoose mongodb-query aggregation-framework