我想用当前日期过滤结果,但是它不起作用
1-
db.tickets.aggregate([
{
$project:{
month:{
$month:"$ticket.headerEntity.businessDate"},
day:{
$dayOfMonth:"$ticket.headerEntity.businessDate"},
year:{ $year:"$ticket.headerEntity.businessDate"},
day1:{ $dayOfMonth:"$currentDate" }
}
},
{ $match:{ month:4, day:day1 }
}
])
2-
db.tickets.aggregate([
{
$project:{
month:{
$month:"$ticket.headerEntity.businessDate"
},
day:{ $dayOfMonth:"$ticket.headerEntity.businessDate" },
year:{ $year:"$ticket.headerEntity.businessDate" }
}
},
{
$match:{
month:4,
day:{ "$dayOfMonth":"$currentDate" }
}
}
])
我的数据库中有一张票,我想找到currentDate票。
答案 0 :(得分:0)
您的第一个查询只需要一些更改:
{ $match:{ month:4, day:day1 } change this into:
{ $match:{ month:4, day:"$day1" }
第二个查询是正确的,请确保有一些实际适合该查询的文档,并且两个字段都保存为Date对象而不是字符串。
答案 1 :(得分:0)
$currentDate
是更新运算符,而不是聚合管道运算符,因此您需要获取客户端的当前日期。
所以代替:
day: {"$dayOfMonth": "$currentDate"}
使用:
day: (new Date()).getDate()