使用 Google 工作表 "dd-MM-yyyy HH:ss" 作为输出在 MongoDB 上查询 ISODate
Query ISODate on MongoDB with Google Sheets "dd-MM-yyyy HH:ss" as an output
我使用名为 Redash 的工具在 MongoDB 上查询 (in JSON)。在我的集合中,日期是在 ISO 中制定的,所以当我的查询被导入(使用 google sheets 的 importdata 函数)到 sheet 时,我必须将它转换为适当的格式sheet中设计的一个公式。
我很乐意将此操作直接集成到我的查询中,ISO 日期格式以适当的 "dd-MM-yyyy HH:ss" 格式直接发送到表格。
有什么想法吗?
非常感谢
您可以在 $project
聚合阶段使用 $dateToString aggregation operator。
例如:
> db.test.find()
{ "_id": 0, "date": ISODate("2018-03-07T05:14:13.063Z"), "a": 1, "b": 2 }
> db.test.aggregate([
{$project: {
date: {$dateToString: {
format: '%d-%m-%Y %H:%M:%S',
date: '$date'
}},
a: '$a',
b: '$b'
}}
])
{ "_id": 0, "date": "07-03-2018 05:14:13", "a": 1, "b": 2 }
请注意,尽管 $dateToString
运算符自 MongoDB 3.0 开始可用,但 MongoDB 3.6 添加了根据特定时区输出字符串的功能。
我使用名为 Redash 的工具在 MongoDB 上查询 (in JSON)。在我的集合中,日期是在 ISO 中制定的,所以当我的查询被导入(使用 google sheets 的 importdata 函数)到 sheet 时,我必须将它转换为适当的格式sheet中设计的一个公式。 我很乐意将此操作直接集成到我的查询中,ISO 日期格式以适当的 "dd-MM-yyyy HH:ss" 格式直接发送到表格。
有什么想法吗?
非常感谢
您可以在 $project
聚合阶段使用 $dateToString aggregation operator。
例如:
> db.test.find()
{ "_id": 0, "date": ISODate("2018-03-07T05:14:13.063Z"), "a": 1, "b": 2 }
> db.test.aggregate([
{$project: {
date: {$dateToString: {
format: '%d-%m-%Y %H:%M:%S',
date: '$date'
}},
a: '$a',
b: '$b'
}}
])
{ "_id": 0, "date": "07-03-2018 05:14:13", "a": 1, "b": 2 }
请注意,尽管 $dateToString
运算符自 MongoDB 3.0 开始可用,但 MongoDB 3.6 添加了根据特定时区输出字符串的功能。