如何查询MongoDB集合中存储无效UpdateDate日期值的对应文档
你查询失败的原因有两个核心可能:
- 字段名存在空格:你提供的文档存储示例中,日期字段名为
UpdateDate(末尾包含一个空格),如果实际存储的字段确实带空格,你原查询用不带空格的UpdateDate作为查询键自然无法匹配到文档。 - 日期构造方式错误:MongoDB Shell中直接调用
Date(时间戳)返回的是字符串类型,而你存储的文档中该字段是ISODate对象类型,类型不匹配导致查询命中不到结果,正确的日期对象构造需要加new关键字。
方案1:匹配带空格的字段+正确构造日期
如果你的字段确实是末尾带空格的,执行以下查询:
db.MyCollection.find({"UpdateDate ": new Date(-62135596800000)})
方案2:字段无空格的场景
如果是示例输入时多打了空格,实际字段名为UpdateDate,执行以下查询:
db.MyCollection.find({UpdateDate: new Date(-62135596800000)})
通用异常日期查询方案
如果你需要批量检索所有写入的异常早日期(包括这个最小日期值),可以用范围查询匹配所有早于Unix纪元的日期,更灵活:
db.MyCollection.find({UpdateDate: {$lt: new Date("1970-01-01")}})
内容的提问来源于stack exchange,提问作者Oscar
相关产品推荐
相关产品推荐

