2017-03-08 48 views
0

收集数据:将一个字符串转换日期的查询来获取两个日期之间的数据在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

是存储日期,日期类型不是对你的选择吗? – Veeram

+0

我没有选择将** CreatedDate **更改为日期。它保存为一个字符串 – Sri

+0

你有控制字符串格式吗?如果您可以使用YYYY-MM-DD格式将日期保存为ISO 8601,则您的查询将按预期工作。 – Veeram

回答

0

,可以储存日期Date格式,您可以将您现有的使用CreatedDate场:

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

在查询构建Date()new Date("<YYYY-mm-dd>")

db.getDate.find({ 
    "CreatedDate": { 
     "$gte": new Date('2015-04-01'), 
     "$lte": new Date('2017-04-01') 
    } 
}) 
相关问题