2016-08-29 180 views
0

有小麻烦。最近合并了从SQL到MongoDb的Db,并且所有日期字段(如SQL中的(createdAt,updatedAt),现在在MongoDb中都存储为String:"Mon Aug 23 2016 09:55:04 GMT-0700 (PDT)",所以问题是。我可以使用像$gte, $lt这样的MongoDb查询方法来获取特定的数据吗?或者我有任何其他方法来做到这一点,而不重新整理数据库,并将数据字段更改为MongoDb日期对象?MongoDb查询日期如果日期存储像字符串

+1

我知道你不想要,但正确的答案是重新修复/修复这些字段以使用MongoDB日期对象。否则,你将永远与这个混乱的表现搏斗。 – JohnnyHK

回答

1

您需要使用下面的语法来查询datetime场专卖店为string

db.mycollection.find({ 
    "timestamp" : {"$gte": new Date("2013-10-01T00:00:00.000Z")} 
}) 

db.mycollection.find({ 
    "timestamp" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")} 
}) 

蒙戈外壳提供了各种方法来返回日期,无论是作为 字符串或作为日期对象:

  • Date()方法,以字符串形式返回当前日期。
  • new Date()构造函数,它使用ISODate()包装器返回一个Date对象。
  • ISODate()构造函数,它使用ISODate()包装器返回一个Date对象。