如何从mongodb到字符串格式化日期之间过滤数据库

苏布哈
[
   { "item": "journal", "qty": 25,"date":"1/1/2016", "status": "A" },
   { "item": "notebook", "qty": 50,"date":"10/1/2016", "status": "A" },
   { "item": "paper", "qty": 100,"date":"20/1/2016", "status": "D" },
   { "item": "planner", "qty": 75,"date":"1/2/2016", "status": "D" },
   { "item": "postcard", "qty": 45,"date":"10/2/2016", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"20/5/2016", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"30/7/2016", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"2/3/2017", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"5/5/2017", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"6/5/2017", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"8/10/2017", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"11/10/2017", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"12/11/2017", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"4/3/2018", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"5/6/2018", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"6/7/2018", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"7/7/2018", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"17/11/2018", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"19/12/2018", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"5/1/2019", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"7/1/2019", "status": "A" },
   { "item": "postcard", "qty": 45,"date":"14/3/2019", "status": "A" }
]

上面是我的数据库结构。

db.lichi.find({date: {$gte : '1/1/2016', $lt : '1/1/2019'}})

这是我试图从数据库中获取数据的查询。

在数据库中,我的字符串格式为日期。我试图使用上述方式来获取信息,但没有用。

给结果

  { "item": "journal", "qty": 25,"date":"1/1/2016", "status": "A" },
  { "item": "notebook", "qty": 50,"date":"10/1/2016", "status": "A" }

只有两个文件。

请看一看。

米克尔

将日期存储为字符串不是最好的方法,因为在这种情况下,您必须比较字符串而不是日期。如果由于某种原因必须保留date为字符串,则可以使用$ dateFromString在查询中将其转换,然后应用过滤条件:

db.lichi.aggregate([
    {
        $addFields: {
            date: {
                $dateFromString: {
                    dateString: "$date",
                    format: "%d/%m/%Y"
                }
            }
        }
    },
    {
        $match: {
            date: { $gte: ISODate("2016-01-01T00:00:00Z"), $lt: ISODate("2019-01-01T00:00:00Z") }
        }
    }
])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何格式化字符串到日期

如何在python中通过多种格式格式化日期字符串

格式化存储在数据库中的日期

如何从格式化日期字符串中删除“ at”?

如何从MySQL中的字符串格式化日期中提取日期

Flutter如何格式化从数据库中提取的日期和时间

以特定格式格式化日期字符串

PHP:如何从表单获取日期/时间,将其格式化为字符串,然后插入数据库?

如何在foreach循环中从数组格式化字符串到日期?

如何使字符串从日期Final格式化?

如何格式化从数据库中提取的日期?

如何格式化来自日期数据库的日期

如何格式化字符串日期颤抖?

格式化数据库字符串列

如果给定日期格式更改,如何格式化日期字符串

如何格式化来自python 3数据库表的日期时间?

从字符串格式化日期

格式化日期字符串

格式化一个字符串到日期

如何格式化JavaScript长字符串日期

如何格式化日期/时间字符串?(Java)

如何在字符串之间格式化和插入字符 - Postgresql

将字符串格式的日期插入到具有日期字段类型的数据库中

如何格式化从数据库中检索到的数据

Python在解析格式化字符串日期到日期对象时遇到问题

如何使用javascript格式化日期字符串

格式化日期不从字符串分配新数据

将日期从 dd/MM/yyyy 格式的字符串插入到数据库中

如何使用 howardhinnant 的 c++ 日期库格式化 UTC 时间字符串