$dateFromString - Amazon DocumentDB

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

$dateFromString

Amazon DocumentDB 中的$dateFromString聚合运算符允许您将日期时间字符串转换为日期对象。当您的数据存储为字符串但需要对数据执行基于日期的操作时,这很有用。

参数

  • dateString:表示日期和时间的字符串。

  • format:(可选)指定格式的字符串dateString。如果未提供,Amazon DocumentDB 将尝试以 ISO-8601 格式解析字符串。

  • timezone:(可选)指定时区的字符串。如果未提供,Amazon DocumentDB 将使用服务器的时区。

  • onError:(可选)指定转换失败时要采取的操作。可能的值是'error'(默认值,会引发错误)、'null'(返回null)或'replace'(用onErrorMessage选项中指定的替换字符串替换值)。

  • onErrorMessage:(可选)如果设置onError'replace',则此选项指定替换字符串。

示例(MongoDB 外壳)

以下示例演示了$dateFromString如何使用在 Amazon DocumentDB 中将日期字符串转换为日期对象。

创建示例文档

db.missionLog.insertMany([ { _id: 1, event: "missionStart", logDate: "2020-03-15T13:41:33"}, { _id: 2, event: "jumpPoint1", logDate: "2020-03-15T13:45:34"}, { _id: 3, event: "jumpPoint2", logDate: "2020-03-15T13:48:21"}, { _id: 4, event: "jumpPoint3", logDate: "2020-03-15T13:52:09"}, { _id: 5, event: "missionEnd", logDate: "2020-03-15T13:58:44"} ]);

查询示例

db.missionLog.aggregate([ { $project: { event: '$event', logDate: { $dateFromString: { dateString: '$logDate' } } } } ]);

输出

[ { "_id": 1, "event": "missionStart", "logDate": ISODate("2020-03-15T13:41:33Z") }, { "_id": 2, "event": "jumpPoint1", "logDate": ISODate("2020-03-15T13:45:34Z") }, { "_id": 3, "event": "jumpPoint2", "logDate": ISODate("2020-03-15T13:48:21Z") }, { "_id": 4, "event": "jumpPoint3", "logDate": ISODate("2020-03-15T13:52:09Z") }, { "_id": 5, "event": "missionEnd", "logDate": ISODate("2020-03-15T13:58:44Z") } ]

代码示例

要查看使用该$dateFromString命令的代码示例,请选择要使用的语言的选项卡:

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const collection = db.collection('missionLog'); const result = await collection.aggregate([ { $project: { event: '$event', logDate: { $dateFromString: { dateString: '$logDate' } } } } ]).toArray(); console.log(result); await client.close(); } example();
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] collection = db['missionLog'] result = list(collection.aggregate([ { '$project': { 'event': '$event', 'logDate': { '$dateFromString': { 'dateString': '$logDate' } } } } ])) print(result) client.close() example()