📜  根据 mongoose 中的日期过滤文档 - Javascript (1)

📅  最后修改于: 2023-12-03 15:26:41.584000             🧑  作者: Mango

根据 mongoose 中的日期过滤文档 - Javascript

Mongoose是一个MongoDB对象模型工具,提供了丰富的方法来操作MongoDB数据库。在Mongoose中,我们可以使用日期过滤来获取特定日期范围内的文档数据。

设置日期过滤查询

下面是如何使用Mongoose来设置日期过滤查询的代码片段:

const Article = mongoose.model('Article', {
  title: String,
  content: String,
  createdAt: Date
});

const start = new Date('2021-01-01');
const end = new Date('2021-01-31');

Article.find({
  createdAt: {
    $gte: start,
    $lte: end
  }
})

上述代码片段中,Article模型中有一个createdAt字段,用于存储创建文章的日期。我们设置了一个开始日期start和一个结束日期end。我们使用Mongoose的$gte$lte运算符将查询限制为createdAt字段在指定日期范围之间的文档。

使用moment.js进行日期格式化

为了更好地处理日期,我们可以使用一个非常受欢迎的JavaScript日期库moment.js。下面是使用moment.js的代码片段:

const moment = require('moment');

const start = moment('2021-01-01').startOf('day').toDate();
const end = moment('2021-01-31').endOf('day').toDate();

Article.find({
  createdAt: {
    $gte: start,
    $lte: end
  }
})

在上述代码片段中,我们使用moment.js的startOf和endOf方法格式化日期,以获取当天的开始时间和结束时间。我们将返回的值传递给toDate方法以转换为Date对象,以便与Mongoose过滤器一起使用。

结论

在Mongoose中,使用日期过滤可以轻松获取指定日期范围内的文档数据。通过moment.js可以轻松格式化日期并与Mongoose过滤器一起使用。