如何在 MongoDB 中过滤特定日期格式的查询?


要根据具体日期格式过滤查询,请使用 $dateToString。让我们创建一个包含文档的集合 −

> db.demo433.insertOne({"DueDate":new Date("2019-11-23")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e771278bbc41e36cc3cae91")
}
> db.demo433.insertOne({"DueDate":new Date("2020-01-03")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e771290bbc41e36cc3cae92")
}

在集合中显示所有文档,这需要借助于 find() 方法 −

> db.demo433.find();

这样将会产生以下输出 −

{ "_id" : ObjectId("5e771278bbc41e36cc3cae91"), "DueDate" : ISODate("2019-11-23T00:00:00Z") }
{ "_id" : ObjectId("5e771290bbc41e36cc3cae92"), "DueDate" : ISODate("2020-01-03T00:00:00Z") }

这是在 MongoDB 中根据具体日期格式过滤查询 −

> db.demo433.aggregate([
... { $addFields: {stringDate: { $dateToString: { format: "%Y-%m-%d", date: "$DueDate" } } } },
... { $match: {"stringDate":"2020-01-03"}},
... { $project:{"stringDate":0}}
... ])

这样将会产生以下输出 −

{ "_id" : ObjectId("5e771290bbc41e36cc3cae92"), "DueDate" : ISODate("2020-01-03T00:00:00Z") }

更新于: 2020 年 4 月 3 日

2K+ 浏览次数

启动你的职业道路

完成课程获得认证

开始
广告