我在date parameter
中获得string format 'yyyyMMdd'
。
我在mongodb中有一个具有属性CallDate ISODate()
的集合,我需要写下一个过滤日期参数的查询。
在 SQL Server 中,我们只使用查询
select * from xyz x with (nolock)
where CONVERT(VARCHAR(23), Cast(x.CallDate as datetime), 112) = @pDateParameter
我怎样才能在 mongodb
中实现相同的过滤器db.getCollection("_xyz").find({CallDate : ?}) //How to adjust that filter here
答案 0 :(得分:1)
您可以在3.4版本中尝试以下聚合。
使用$match
在日期参数上添加字符串格式的日期属性,后跟$project
,如果您愿意,可以使用排除的db.collection.aggregate([
{ $addFields: {yearMonthDay: { $dateToString: { format: "%Y%m%d", date: "$CallDate" } } } },
{ $match: {"yearMonthDay":date parameter}},
{ $project:{"yearMonthDay":0}}
])
删除字符串日期列。
{{1}}