MongoDb按日期查询,如果日期存储像String一样

时间:2016-08-29 17:08:15

标签: javascript node.js mongodb mongoose

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

1 个答案:

答案 0 :(得分:2)

您需要使用以下语法将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")}
})
  

mongo shell提供了各种返回日期的方法,如:   字符串或Date对象:

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