mongodb - 如何将集合“日期”值更新为 YYYY-MM-DD?
问题描述
我在 MESSAGES 集合中有一些 DATE 值,如下所示:
{ "Date" : "15-07-2014 11:48:14" }
{ "Date" : "15-07-2014 11:48:14" }
{ "Date" : "16-07-2014 13:37:44" }
{ "Date" : "16-07-2014 13:37:44" }
{ "Date" : "16-07-2014 13:37:49" }
{ "Date" : "16-07-2014 13:37:49" }
如何更改集合以使日期值表示为 YYYY-MM-DD?
我一直在查看函数 $dateFromString 但这看起来像是应用于查询并且不确定这是否可以永久应用于集合。
解决方案
我们可以使用$out将指定集合的数据替换为聚合输出。以下查询将永久更新messages
集合。
db.messages.aggregate([
{
$addFields:{
"Date":{
$dateToString:{
"date":{
$toDate:"$Date"
},
"format":"%Y-%m-%d %H:%M:%S"
}
}
}
},
{
$out:"messages"
}
]).pretty()
前:
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09ef"),
"Date" : "15-07-2014 11:48:14"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f0"),
"Date" : "15-07-2014 11:48:14"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f1"),
"Date" : "16-07-2014 13:37:44"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f2"),
"Date" : "16-07-2014 13:37:44"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f3"),
"Date" : "16-07-2014 13:37:49"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f4"),
"Date" : "16-07-2014 13:37:49"
}
后:
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09ef"),
"Date" : "2014-07-15 11:48:14"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f0"),
"Date" : "2014-07-15 11:48:14"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f1"),
"Date" : "2014-07-16 13:37:44"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f2"),
"Date" : "2014-07-16 13:37:44"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f3"),
"Date" : "2014-07-16 13:37:49"
}
{
"_id" : ObjectId("5d728d92eb1b7fdde7ea09f4"),
"Date" : "2014-07-16 13:37:49"
}
推荐阅读
- reactjs - 在 React 中使用 axios 调用 API 没有响应
- javascript - 日期选择器 - 要选择的日期 --> 从今天起 2 天
- angular - 运行 ng e2e 命令后找不到模块“src/environments/environment”
- nextflow - Nextflow deepTools 指纹
- python - Django使用通过外键连接的另一个模型中的字段过滤数据
- python-3.x - 如何在python中反转字符串?
- r - r 绘图功能问题
- javascript - React - 使用 papaparse 将一些 csv 列转换为数组
- node.js - 从回调函数返回值以发送客户端响应
- shopify - 如何在shopify中使用ajax清除购物车?