【问题标题】:mongodb find between dates (month, year)mongodb在日期(月,年)之间查找
【发布时间】:2018-08-01 05:08:36
【问题描述】:

我有一个包含两个字段的集合,类似于下面的一个:

{ 年份: 2017, 月:04 }

如何选择 2017/07 - 2018/04 之间的文档?

【问题讨论】:

    标签: mongodb find


    【解决方案1】:

    首先,您必须确保您的数据库 以 ISO 格式存储日期(mongo 支持的格式)

    您可以使用以下命令查找文档:-

    model.find({
      date:{
       $gte:ISODate("2017-04-29T00:00:00.000Z"),
       $lte:ISODate("2017-07-29T00:00:00.000Z"),
      }
    })
    

    其中模型是集合的名称,日期是一个属性 ISO 格式的文档保存日期。

    【讨论】:

      【解决方案2】:

      解决方法:

      db.collection.aggregate(
      
          // Pipeline
          [
              // Stage 1
              {
                  $addFields: {
                      "date": {
                         "$dateFromParts": {
                         "year": "$year",
                         "month": {"$toInt": "$month"}
                       }
                      }
                  }
              },
      
              // Stage 2
              {
                  $match: {
                   "date": {
                       "$gte": ISODate("2017-07-01T00:00:00.000Z"),
                       "$lte": ISODate("2018-04-30T00:00:00.000Z")
                     }
                  }
              },
      
          ]
      );
      

      【讨论】:

      • 以上答案与此不同?
      猜你喜欢
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2023-03-23
      • 2021-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多