可以比较mongodb中的日期字符串
Possible to compare date strings in mongodb?
我有一个集合,其中包含具有date属性的文档,如下所示:
{
title: "whatever",
created: ISODate("2013-05-27T03:36:50Z")
}
我想选择在某一天创建的记录。我希望我可以使用toDateString()
并比较值,但当我做如下搜索时:
db.myCollection。find({'created.toDateString()': new Date('05/27/2013').toDateString()}).pretty()
但这不起作用。有什么方法可以做到我上面所尝试的吗?
如果要选择记录,则使用日期范围:
db.collection.find({
created: { "$gte": new Date("2013-05-27"), "$lt": new Date("2013-05-28") }
})
选择两个日期之间包含的所有小时、分钟等。
所以你应该尝试使用日期值,而不是强制转换成字符串。
如果你想用这个来做聚合,或者需要只显示一天的结果,那么使用$project和日期操作符:
db.collection.aggregate([
// Still match on the normal date forms, this time whole month
{ "$match": {
created: {
"$gte": new Date("2013-05-01"),
"$lt": new Date("2013-05-31")
}
}},
// Project the date
{ "$project": {
"date": {
"year" : { "$year" : "$created" },
"month" : { "$month" : "$created" },
"day": : { "$dayOfMonth": "$created" }
},
"title": 1
}},
// Group on day and title
{ "$group": {
"_id": {
"date" : "$date",
"title" : "$title"
},
"count": { "$sum": 1 }
}},
// Sort by date
{ "$sort": {
"_id.date.year": 1,
"_id.date.month": 1,
"_id.date.day": 1,
}},
// Project nicer dates and document
{ "$project": {
"_id": 0,
"date": { "$concat": [
{ "$substr": [ "$_id.date.year", 0, 4 ] },
"-",
{ "$substr": [ "$_id.date.month", 0, 2 ] },
"-",
{ "$substr": [ "$_id.date.day", 0, 2 ] }
]},
"title": "$_id.title",
"count": 1
}}
])
相关文章:
- 在JavaScript中拆分日期字符串的更好方法是什么
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 如何将日期字符串视为格式化数组[EYEAR,MONTH,DAY]
- 分析特定区域设置(而不是时区!)中的日期字符串
- PHP strtotime()为JavaScript日期字符串返回false
- 如何将毫秒转换为日期字符串
- 正在使用日期字符串初始化javascript日期对象
- 新Date()javascript的日期字符串
- 使用moment.js分析日语日期字符串
- 将日期字符串转换为数字以进行比较
- 分析具有不同日期格式的日期字符串
- 将带有 AM/PM 的日期字符串转换为 javascript 日期对象
- 将日期字符串转换为另一种语言
- 日期 ISO 日期字符串问题
- JavaScript 时刻格式日期字符串
- Javascript使用php日期字符串显示2014年而不是2013年
- MomentJS从日期字符串解析午夜本地
- Javascript Date对象到日期字符串
- 如何使用Javascript将iOS日期字符串转换为格式化日期
- 将日期字符串隐藏到日期对象中