【问题标题】:Get Data Between String Date MongoDB获取字符串日期之间的数据 MongoDB
【发布时间】:2019-01-19 04:00:18
【问题描述】:

我在如何获取开始日期之间的数据时遇到了问题,因为它只是字符串,而我的文档架构是这样的

"_id" : ObjectId("5ab92bdd6fbcd28fb0c68ff6"),
"username" : "jumbreng",
"startdate" : "26-03-2018",
"enddate" : "11-08-2018",
"status" : 1

我一直在尝试像这样创建聚合

    db.presensi.aggregate( [ {
   $project: {   
      "username": "$username",
      "startdate": {
         $dateFromString: {
            dateString: '$startdate',
         }
      },
      "enddate" :{
         $dateFromString: {
            dateString: '$enddate',
         }
   }
   }
} ] )

但我不知道如何使它具有像 find($lte 和 $gte) 这样的范围 我应该将此聚合更新到我的集合吗?然后我可以创建语句 find($lte 和 $gte)?如何对我的收藏进行聚合?

【问题讨论】:

标签: mongodb


【解决方案1】:

$dateFromString 聚合算子可以帮到你。

试试看:

db.user.aggregate(

// Pipeline
[
    // Stage 1
    {
        $project: {
            _id: true,
            startdate: true,
            enddate: true,
            status: true,
            username: "$username",
            isBetween: {
                $and: [{
                    $lt: [{
                        $dateFromString: {
                            dateString: '$startdate',
                        }
                    }, {
                        $dateFromString: {
                            dateString: '27-03-2018',
                        }
                    }]
                }, {
                    $gt: [{
                        $dateFromString: {
                            dateString: '$startdate',
                        }
                    }, {
                        $dateFromString: {
                            dateString: '25-03-2018',
                        }
                    }]
                }]
            }
        }
    },

    // Stage 2
    {
        $match: {
            "isBetween": true
        }
    },
], {
    cursor: {
        batchSize: 50
    }
});

【讨论】:

  • 但聚合不支持 $gte。
  • 你能举一些我收藏的例子吗?
  • 抱歉先生,我已被编辑并尝试您的解决方案。但是如何为我的收藏创​​建此聚合?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 2021-10-11
  • 1970-01-01
相关资源
最近更新 更多