javascript - 如何根据MongoDB中的日期范围过滤数据
问题描述
[{
"_id": {
"$oid": "5d7a76c94c3c8c05618cef58"
},
"title": "hello",
"date": {
"$date": "2019-06-07T07:22:00.000Z"
},
"__v": 0
}, {
"_id": {
"$oid": "5d7a7809ef31980615ed3756"
},
"title": "hello",
"date": {
"$date": "2019-06-08T07:22:00.000Z"
},
"__v": 0
}, {
"_id": {
"$oid": "5d7a78e712c75706a3fdb025"
},
"title": "hello6",
"date": {
"$date": "2019-07-19T08:22:00.000Z"
},
"__v": 0
}, {
"_id": {
"$oid": "5d7a78e712c75706a3fdb025"
},
"title": "hello7",
"date": {
"$date": "2019-07-03T08:22:00.000Z"
},
"__v": 0
}]
我正在使用 mongoose 将我的数据存储在 mongodb 中,我正在尝试使用过滤我的数据mongoose
2019-07-01
我想要从日期到的所有文档。2019-07-31
我们可以在 mongoDB 中对 mongoose 进行此过滤吗
预期产出
[
{
"_id": {
"$oid": "5d7a78e712c75706a3fdb025"
},
"title": "hello6",
"date": {
"$date": "2019-07-19T08:22:00.000Z"
},
"__v": 0
}, {
"_id": {
"$oid": "5d7a78e712c75706a3fdb025"
},
"title": "hello7",
"date": {
"$date": "2019-07-03T08:22:00.000Z"
},
"__v": 0
}
]
这是我的代码 https://codesandbox.io/s/lively-tree-hd0fo
app.get("/saveData", async () => {
try {
var blog = new BlogPostModel({
title: "hello6",
date: "19-Jul-2019 08:22"
});
console.log("before save");
let saveBlog = await blog.save(); //when fail its goes to catch
console.log(saveBlog); //when success it print.
console.log("saveBlog save");
} catch (error) {
console.log(error);
}
});
解决方案
您可以使用 MongoDB 的$gte
(大于或等于)和$lte
(小于或等于):
blog.find({ date: { $gte: '2019-07-01', $lte: '2019-07-31' } });
推荐阅读
- r - 使用 ifelse() 语句获取 R 中不同类的对象
- python - Django查看聚合不做计算
- eclipse - 在 Eclipse 中组织 Kotlin 的导入和自动完成?
- google-bigquery - 如何操作 BigQuery 的结果
- html - 如何将 div 直接放置在彼此下方?
- flutter - Flutter 依赖项,iOS 问题(未找到 Flutter.h 文件)
- sql - 试图编写最流行产品的查询(意思是具有最不同客户的产品)超级卡住。不使用视图
- apache - 无法使用 SSL 登录 GeoServer 2.19
- amazon-web-services - AWS EC2 成本比较在一处?
- node.js - npm 错误!代码 ENOTEMPTY npm 错误!在 Nextjs 项目中安装任何 npm 依赖项时的系统调用重命名