$dateToString (agregação)
Nesta página
Definição
$dateToString
Converte um objeto de data em uma string de acordo com um formato especificado pelo usuário.
A expressão
$dateToString
tem a seguintesintaxe de expressão do operador :
Você pode utilizar o $dateToString
para implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
A expressão $dateToString
tem a seguinte sintaxe de expressão do operador:
{ $dateToString: { date: <dateExpression>, format: <formatString>, timezone: <tzExpression>, onNull: <expression> } }
Campo | Descrição | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
| Opcional. A especificação do formato de data. Se não for especificado e o Se não for especificado e o | ||||||||||||
| Opcional. O fuso horário do resultado da operação.
| ||||||||||||
| Opcional. O valor a devolver se o Se não for especificado, retornará nulo |
Especificadores de formato
Os seguintes especificadores de formato estão disponíveis para uso no <formatString>
:
Especificadores | Descrição | Valores possíveis |
---|---|---|
| Nome do mês abreviado (3 letras) Novidades na versão 7.0. |
|
| Nome do mês inteiro Novidades na versão 7.0. |
|
| Dia do mês (2 dígitos, zero acolchoado) |
|
| Ano no formato ISO 8601 |
|
| Hora (2 dígitos, zero acolchoado, relógio de 24 horas) |
|
| Dia do ano (3 dígitos, zero preenchido) |
|
| Milissegundo (3 dígitos, zero preenchido) |
|
| Mês (2 dígitos, zero preenchido) |
|
| Minuto (2 dígitos, zero preenchido) |
|
| Segundo (2 dígitos, zero preenchido) |
|
| Número do dia da semana no formato ISO 8601 (1-segunda, 7-domingo) |
|
| Semana do ano (2 dígitos, zero preenchido) |
|
| Semana do ano no formato ISO 8601 |
|
| Dia da semana (1-domingo, 7-sábado) |
|
| Ano (4 dígitos, zero preenchido) |
|
| Deslocamento do fuso horário de UTC. |
|
| Os minutos são compensados do UTC como um número. Por exemplo, se o deslocamento de fuso horário ( |
|
| Caractere percentual como literal |
|
Exemplo
Considere uma coleção sales
com o seguinte documento:
{ "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-01-01T08:15:39.736Z") }
A seguinte agregação utiliza $dateToString
para retornar o campo date
como strings formatadas:
db.sales.aggregate( [ { $project: { yearMonthDayUTC: { $dateToString: { format: "%Y-%m-%d", date: "$date" } }, timewithOffsetNY: { $dateToString: { format: "%H:%M:%S:%L%z", date: "$date", timezone: "America/New_York"} }, timewithOffset430: { $dateToString: { format: "%H:%M:%S:%L%z", date: "$date", timezone: "+04:30" } }, minutesOffsetNY: { $dateToString: { format: "%Z", date: "$date", timezone: "America/New_York" } }, minutesOffset430: { $dateToString: { format: "%Z", date: "$date", timezone: "+04:30" } }, abbreviated_month: { $dateToString: {format: "%b", date: "$date", timezone: "+04:30" } }, full_month: { $dateToString: { format: "%B", date: "$date", timezone: "+04:30" } } } } ] )
A operação retorna o seguinte resultado:
{ "_id" : 1, "yearMonthDayUTC" : "2014-01-01", "timewithOffsetNY" : "03:15:39:736-0500", "timewithOffset430" : "12:45:39:736+0430", "minutesOffsetNY" : "-300", "minutesOffset430" : "270", "abbreviated_month": "Jan", "full_month": "January" }