在查询中将字符串转换为Date以获取MongoDB中两个日期之间的数据

时间:2017-03-08 21:21:40

标签: mongodb

收集数据:

{
    "UserId":ObjectId('55525252525252'),
     "CreatedDate":"Fri Apr 01 2015"
},
{
    "UserId":ObjectId('55525252525252'),
     "CreatedDate":"Fri Apr 01 2016"
},
{
    "UserId":ObjectId('55525252525252'),
     "CreatedDate":"Fri Apr 01 2017"
}


db.getDate.find({"UserID":ObjectId('55525252525252'),"CreatedDate":{"$gte":new Date('Fri Apr 01 2015'),"$lte":new Date('Fri Apr 01 2017')}})
  • 当我执行此国家/地区时,不会按预期返回数据
  • 如何将字符串转换为日期以执行提供查询

1 个答案:

答案 0 :(得分:0)

您应该以Date格式存储日期,您可以使用以下内容转换现有的CreatedDate字段:

db.getDate.find().forEach(function(doc) {
    doc.CreatedDate = new Date(doc.CreatedDate);
    db.getDate.save(doc);
});

在您的查询中使用new Date("<YYYY-mm-dd>")

构建Date()
db.getDate.find({
    "CreatedDate": {
        "$gte": new Date('2015-04-01'),
        "$lte": new Date('2017-04-01')
    }
})