从MySql日期查询转换为mongoDB日期查询

时间:2013-10-06 09:45:40

标签: php mongodb

我在 MySql 中使用此格式在一个和一个 mounth

中获取数据
date > DATE_SUB( NOW(), INTERVAL 1 WEEK)  // for one week

date > DATE_SUB( NOW(), INTERVAL 1 MONTH) // for one month

如何转换为php mongoDB

1 个答案:

答案 0 :(得分:0)

据我所知,没有原生解决方案。假设你使用的是shell并且有这样的集合:

> db.foo.find({}, {_id: 0})
{ "date" : ISODate("2012-10-06T10:28:10.595Z") }
{ "date" : ISODate("2013-10-01T10:28:14.115Z") }
{ "date" : ISODate("2013-10-16T10:28:19.522Z") }
{ "date" : ISODate("2016-11-04T11:23:00.391Z") }

如果您想查找上周日期表格的所有文件,可以使用以下代码:

//Create new date
var weekBefore = new Date((new Date).setDate(new Date().getDate() - 7));
db.foo.find({date: {$gt: weekBefore, $lt: new Date}})

如果你想减去一个月你可以使用(取决于你的需要)下面的一个:

var monthBefore = new Date(new Date().setMonth(new Date().getMonth() - 1))
db.foo.find({date: {$lt: monthBefore}} )

var thirtyOneDaysBefore = new Date(
    (new Date).setDate(new Date().getDate() - 31)
);
db.foo.find({date: {$lt: thirtyOneDaysBefore}})

使用驱动程序时,您必须使用语言本机日期时间类型执行此操作。