如何在MongoDB中更新日期字段格式

用户名

我有以下收藏

/* 1 */
{
    "_id" : ObjectId("5ceb7e71636566fe7718733e"),
    "project_name" : "p1",
    "expected" : "19-Sep-2019",
    "actual" : "19-Sep-2019"
}

/* 2 */
{
    "_id" : ObjectId("5ceb7e71636566fe77187340"),
    "project_name" : "p2",
    "expected" : "20-Sep-2019",
    "actual" : "20-Sep-2019"
},
{
    "_id" : ObjectId("5ceb7e71636566fe77187340"),
    "project_name" : "p2",
    "actual" : "20-Sep-2019"
},
{
    "_id" : ObjectId("5ceb7e71636566fe77187340"),
    "project_name" : "p2",
    "expected" : "",
    "actual" : "20-Sep-2019"
}

我需要以YYYY-MM-DD格式更新期望和实际的2个字段。如何为此编写更新查询?

谁-假面真灵魂

使用MongoDB V4.0,由于这是一次性操作,因此您可以尝试以下操作:

 db.collection.aggregate([
    {
        $addFields: {
            expected: {
                $cond: [
                    {
                        $and: [
                            {
                                $ne: [
                                    "$expected",
                                    ""
                                ]
                            },
                            {
                                $ne: [
                                    {
                                        $type: "$expected"
                                    },
                                    "missing"
                                ]
                            }
                        ]
                    },
                    {
                        $dateToString: {
                            format: "%Y-%m-%d",
                            date: {
                                $dateFromString: {
                                    dateString: "$expected"
                                }
                            }
                        }
                    },
                    ""
                ]
            },
            actual: {
                $cond: [
                    {
                        $and: [
                            {
                                $ne: [
                                    "$actual",
                                    ""
                                ]
                            },
                            {
                                $ne: [
                                    {
                                        $type: "$actual"
                                    },
                                    "missing"
                                ]
                            }
                        ]
                    },
                    {
                        $dateToString: {
                            format: "%Y-%m-%d",
                            date: {
                                $dateFromString: {
                                    dateString: "$actual"
                                }
                            }
                        }
                    },
                    ""
                ]
            }
        }
    }, { $out: "collection_new" }
])

测试: MongoDB-操场

注意:您需要注意$ out,在此阶段,输入名称应与任何现有集合名称都不匹配,如果这样做会丢弃该集合并使用聚合结果重新创建它,如果您需要重新执行此过程时间使用$ merge而不是$out同样,一旦您输入了正确的数据,collection_new就可以删除现有数据collection并将新集合重命名为旧名称。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Swift中从数组获取最新日期

来自分类Dev

如何在symfony2中设置创建和更新日期?

来自分类Dev

如何更新日期时间字段以仅包含日期或时间部分

来自分类Dev

MySQL更新日期时间字段

来自分类Dev

如何从Angular.js中的新日期获取日期格式

来自分类Dev

如何在R中合并创建仅基于更新日期取一个值的列

来自分类Dev

我如何在React中更新日期占位符选项onMouseOver

来自分类Dev

如何在Ruby中设置“内容”字段的日期格式?

来自分类Dev

如何在MongoDB中普遍更新字段?

来自分类Dev

如何在mongoDB中将数组中的日期字符串更新为日期格式?

来自分类Dev

如何在vue2-datepicker中更新日期

来自分类Dev

如何在Angular 4中刷新日期

来自分类Dev

如何在php中获取更新日期少于30天的所有记录

来自分类Dev

如何在MongoDB中更新子文档字段值?

来自分类Dev

更新日期字段

来自分类Dev

如何按MySQL中不同表的两个日期字段之间的最新更新日期排序

来自分类Dev

T-SQL更新日期字段与select语句中的日期格式不同

来自分类Dev

oracle中的更新日期格式

来自分类Dev

如何在mongodb中全局更新字段值

来自分类Dev

如何从Angular.js中的新日期获取日期格式

来自分类Dev

如何在Powerpoint的自动更新字段中设置自定义日期格式?

来自分类Dev

如何在WPF中更新日期

来自分类Dev

如何在Elm模型中更新日期字段

来自分类Dev

在mongoDB文档中更新日期字段时指定日期格式

来自分类Dev

解析SDK更新日期字段

来自分类Dev

如何限制日期字段中的日期格式

来自分类Dev

如果列的值在 Oracle sql 中的格式不同,则使用特定格式更新日期

来自分类Dev

如何每周更新日期?

来自分类Dev

如何在sql中更新日期

Related 相关文章

  1. 1

    如何在Swift中从数组获取最新日期

  2. 2

    如何在symfony2中设置创建和更新日期?

  3. 3

    如何更新日期时间字段以仅包含日期或时间部分

  4. 4

    MySQL更新日期时间字段

  5. 5

    如何从Angular.js中的新日期获取日期格式

  6. 6

    如何在R中合并创建仅基于更新日期取一个值的列

  7. 7

    我如何在React中更新日期占位符选项onMouseOver

  8. 8

    如何在Ruby中设置“内容”字段的日期格式?

  9. 9

    如何在MongoDB中普遍更新字段?

  10. 10

    如何在mongoDB中将数组中的日期字符串更新为日期格式?

  11. 11

    如何在vue2-datepicker中更新日期

  12. 12

    如何在Angular 4中刷新日期

  13. 13

    如何在php中获取更新日期少于30天的所有记录

  14. 14

    如何在MongoDB中更新子文档字段值?

  15. 15

    更新日期字段

  16. 16

    如何按MySQL中不同表的两个日期字段之间的最新更新日期排序

  17. 17

    T-SQL更新日期字段与select语句中的日期格式不同

  18. 18

    oracle中的更新日期格式

  19. 19

    如何在mongodb中全局更新字段值

  20. 20

    如何从Angular.js中的新日期获取日期格式

  21. 21

    如何在Powerpoint的自动更新字段中设置自定义日期格式?

  22. 22

    如何在WPF中更新日期

  23. 23

    如何在Elm模型中更新日期字段

  24. 24

    在mongoDB文档中更新日期字段时指定日期格式

  25. 25

    解析SDK更新日期字段

  26. 26

    如何限制日期字段中的日期格式

  27. 27

    如果列的值在 Oracle sql 中的格式不同,则使用特定格式更新日期

  28. 28

    如何每周更新日期?

  29. 29

    如何在sql中更新日期

热门标签

归档