Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:如何查找日期格式为字符串2021-04-04 12:40:05的文档_Mongodb_Date_Find - Fatal编程技术网

MongoDB:如何查找日期格式为字符串2021-04-04 12:40:05的文档

MongoDB:如何查找日期格式为字符串2021-04-04 12:40:05的文档,mongodb,date,find,Mongodb,Date,Find,我试图在MongoDB中的日期字段中查找文档,但有些文档包含如下日期字符串2021-04-04 12:40:05,使用查询无法找到它们。其他文档包含正确的格式,我可以这样选择它们 const today = new Date(); pastDate = today.setDate(today.getDate() - 10); console.log(pastDate); const transactions = await transactionMongoModel.find({ creatio

我试图在MongoDB中的日期字段中查找文档,但有些文档包含如下日期字符串
2021-04-04 12:40:05
,使用查询无法找到它们。其他文档包含正确的格式,我可以这样选择它们

const today = new Date();
pastDate = today.setDate(today.getDate() - 10);
console.log(pastDate);
const transactions = await transactionMongoModel.find({ creationTime: { $lt: pastDate } })
  .select({ _id: 1, creationTime: 1 })
  .sort({ creationTime: -1 })
  .limit(100);

但此查询不会返回创建时间按此方式格式化的文档。
2021-04-04 12:40:05
如何查找它们?

第一个日期不应存储为字符串,最好先在mongo中批量更新日期字段

但若时间结束,您可以使用运算符首先转换为日期格式,然后进行比较

transactionMongoModel.aggregate([
  { "$addFields": {
    "date": {
      "$dateFromString": {
        "dateString": "$creationTime"
      }
    }
  }},
  { "$match": { "date": { "$lt": pastDate.toDate() }}},
  {"$project": {"date":0, "_id": 1, "creationTime" : 1}}
])

日期/时间不应存储为字符串,这是一个设计缺陷。始终存储正确的
日期
对象。用于将字符串转换为
日期
对象。您可以比较相同类型的数据。如果您知道某些数据的格式不同,然后在比较时使用聚合日期/字符串运算符进行转换。我不是这样保存的。这只是一个错误,有许多记录,现在试图在一个查询库中查找它们,以获得帮助,但我遇到了以下错误
TypeError:pastDate.toDate不是一个函数
pastDate的值是多少?。如果无效,toDate很可能会抛出errorpastDate:1618149772740作为时间戳!需要将时间戳转换为日期
new date(passdate)
{$match:{date:{$lt:new date(passdate)}}},
并获得
MongoError:Invalid$project::cause by::Cannot do inclusion on field creationTime in exclusion projection