node.js - Mongodb 按今天的日期查找创建的结果

标签 node.js mongodb date meanjs

我有这个查询来获得当月的结果。但我想得到今天的结果。

var start = new Date(2010, 11, 1);
var end = new Date(2010, 11, 30);

db.posts.find({created_on: {$gte: start, $lt: end}});

最好的方法是什么?

最佳答案

您的开始日期对象应以 00:00:00.000(毫秒精度)保存当前日期时间小时,并将今天日期的小时数设置为 23:59:59.999:

var start = new Date();
start.setHours(0,0,0,0);

var end = new Date();
end.setHours(23,59,59,999);

然后像往常一样在 MongoDB 查询运算符中传递修改后的日期对象:

db.posts.find({created_on: {$gte: start, $lt: end}});

如果您使用的是 dayjs date utility库,这可以通过使用 startOf() 来完成和 endOf() dayjs 当前日期对象上的方法,将字符串 'day' 作为参数传递:

const start = dayjs().startOf('day'); // set to 12:00 am today
const end = dayjs().endOf('day'); // set to 23:59 pm today

您也可以使用$expr如下:

db.posts.find({
    $expr: {
        $eq: [
            { $dateToString: { format: '%Y-%m-%d', date: '$$NOW' } },
            { $dateToString: { format: '%Y-%m-%d', date: '$created_on' } },
        ],
    },
})

关于node.js - Mongodb 按今天的日期查找创建的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29327222/

相关文章:

MongoDB,戈朗。我可以在不将数据加载到内存的情况下对 slice/ map 进行计数吗?

php - 我想显示时间间隔的时间拾取

javascript - 您如何选择处理 Javascript Promise 中的错误?

node.js - sequelize.import 不是函数

node.js - 在 Heroku 上部署 React 和 Django

node.js - 压入数组返回 Object 对象

mongodb - 如何在 Solr 中使用 mongoDB?

r - 使用来自 Zoo 的 as.yearmon 修改 ggplot2 中的绘图

SQLite JDBC rs.getDate() getTimestamp() 等都返回错误值

node.js - Reactjs : Unable to push to Heroku