我正在尝试运行一个在特定日期范围之间返回文档的查询。
日期存储如下:" Mon Feb 19 16:59:40 +0000 2018"在名为" date"的列中。我知道通过运行sort {date:-1}按升序或降序排序,但是,我不相信MongoDB正确执行此比较。
我正在考虑通过PHP脚本将所有这些日期转换为Unix时间戳,但是,必须有一种方法来保持数据不变并按日期列排序?
因此,我的问题是如何运行查询以检索两个日期X和Y之间的所有文档?第二个问题,我最好在将日期预先处理到Unix时间戳之前将其存储到MongoDB中吗?
答案 0 :(得分:2)
关于你的第一个问题: 是的,可以像这样使用聚合:
db.coll.aggregate()
.project({
dateTimestamp: {
$dateFromString: {
dateString: '$date'
}
//project additional necessary fields
}
})
.sort({dateTimestamp:1})
第二个问题: 如果没有理由不这样做,我可能会将它存储为日期。使用日期可以更轻松地查询/排序