我是mongodb的新手
尝试根据集合中的字段值计算文档。 我曾经在插入时插入DATE()。 但是在计算文档时,它没有显示输出
{
"_id" : 6,
"WebUser" : "F",
"PassWord" : "F",
"MailId" : "F@mail.com",
"Country" : "In",
"Contact" : { "Mobile" : "6" },
"DOJ" : "Thu Jan 05 2017 16:55:08 GMT+0530 (India Standard Time)"
}
尝试以下选项。但没用。
db.WebUser.count( { DOJ: { $gt: new Date('01/01/2017') } } )
0
db.WebUser.count( { DOJ : { $gt: new Date('01-05-2017 16:55:08') } } )
0
db.WebUser.count( { DOJ : { $gt: new Date('Thu Jan 05 2017 16:55:08 GMT+0530 (India Standard Time') } } )
0
如何处理mongo db中的DATE以查找(选择),更新和删除。 如何将日期转换为字符串和字符串到日期? 如何添加一个月/年/日,如Day + 1,Month + 5 date和isodate之间有什么区别
由于
答案 0 :(得分:0)
您必须将记录插入
db.test.insert({date: new Date()})
将日期保存为:{" _id" :ObjectId(" 586e3e258fcf67917c9d4cb4")," date" :ISODate(" 2017-01-05T12:37:57.450Z")}
但我认为你把它插入
db.test.insert({date: Date()})
将日期转换为字符串。哪个保存日期为{" _id" :ObjectId(" 586e3e328fcf67917c9d4cb5")," date" :" 2017年1月5日星期四18:08:10 GMT + 0530(IST)" } 作为你的
答案 1 :(得分:0)
您的文档在DOJ
字段中包含简单字符串。它不是Date
个对象。插入文档时应插入Date对象:
db.WebUser.insert({_id:6,Country:"In",DOJ:new Date("01/01/2017")})
之后,您会在DOJ
字段中看到正确的数据类型:
{
"_id" : 6,
"Country" : "In",
"DOJ" : ISODate("2016-12-31T18:30:00Z")
}
但您可以轻松修复数据。只需选择包含DOJ
字段类型字符串的所有文档并更新这些文档:
db.WebUser.find({"DOJ":{$type:2}}).forEach(function(doc){
db.WebUser.update({_id:doc._id},{$set:{DOJ:new Date(doc.DOJ)}})
})
运行此脚本后,您的文档将以正确的数据格式显示日期,您的查询将正常运行。