Mongodb Mongo文档字段的日期范围查询,该字段是ISOString,但不是键入的日期?

Mongodb Mongo文档字段的日期范围查询,该字段是ISOString,但不是键入的日期?,mongodb,mongoose,database-schema,isodate,Mongodb,Mongoose,Database Schema,Isodate,假设我有一个包含文档(来自JSON)的集合,其中包含一个包含日期信息的字段——作为ISOString(但不是日期类型)。例如: { foo: { completed: "2015-02-25T12:44:47.335Z" } } 如何对此数据执行日期范围查询?据我所知,该字段被视为字符串。我也在用猫鼬。我可以在架构中做些什么来适当地键入此子字段吗?转换为日期类型是最好的,但您仍然可以对ISO日期字符串执行排序和范围筛选 db.test.find({'foo.completed'

假设我有一个包含文档(来自JSON)的集合,其中包含一个包含日期信息的字段——作为ISOString(但不是日期类型)。例如:

{
  foo: {
    completed: "2015-02-25T12:44:47.335Z"
  }
}

如何对此数据执行日期范围查询?据我所知,该字段被视为字符串。我也在用猫鼬。我可以在架构中做些什么来适当地键入此子字段吗?

转换为日期类型是最好的,但您仍然可以对ISO日期字符串执行排序和范围筛选

db.test.find({'foo.completed':{
$gt:'2015-01-25T12:44:47.335Z',
$lt:'2015-03-25T12:44:47.335Z'
}})

您需要使用ISODate格式。请过目——我已经进一步澄清了这个问题。数据已将ISOString作为字符串。显而易见的答案是在添加到数据库之前对数据进行预处理。我想知道是否有更好的方法。它确实有效。嘿,实际上我在另一个地方有类似的代码,但我完全忘记了。谢谢你的理智检查。我正在使用完全相同的查询来处理相同的条件,但它不起作用