Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

Date() e Datetime (método mongosh)

Date()

Retorna uma data como uma string ou como um objeto Data. A data pode conter uma data e uma hora, conhecida como data/hora.

A especificação BSON declara que um objeto Date contém a data/hora UTC. UTC é Tempo Universal Coordenado. O UTC datetime armazena um valor inteiro 64- bit não atribuído, indicando o número de milissegundos após a era Unix (Im 1junho, 1970 às 00:00:00 UTC).

Você pode utilizar o Date() 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

Você pode especificar um dos seguintes formatos:

  • Date() retorna a data atual como uma string no mongosh.

  • new Date() retorna a data atual como um objeto Data. mongosh encapsula o objeto Data com o auxiliar do ISODate. O ISODate está em UTC.

Você pode especificar uma data específica passando uma string de data ISO-8601 com um ano dentro do intervalo inclusivo 0 a 9999 para o construtor new Date() ou a função ISODate(). Estas funções aceitam os seguintes formatos:

  • new Date("<YYYY-mm-dd>") retorna o ISODate com a data especificada.

  • new Date("<YYYY-mm-ddTHH:MM:ss.sss>") especifica o horário no fuso horário local do cliente e retorna o ISODate com o horário especificado em UTC. ss.sss especifica segundos (ss) e milissegundos (.sss). Os milissegundos são configurados para 0 se omitidos.

  • new Date("<YYYY-mm-ddTHH:MM:ss.sssZ>") especifica a data e hora em UTC e retorna o ISODate com o datetime especificado em UTC. ss.sss especifica segundos (ss) e milissegundos (.sss). Os milissegundos são configurados para 0 se omitidos.

  • new Date(<integer>) especifica a data e hora em milésimos de segundo desde a época do UNIX (1º de janeiro de 1970) e retorna a instância ISODate resultante.

Internamente, os objetos de Data são armazenados como um número inteiro assinado de 64-bit representando o número de milésimos de segundo desde a época do Unix (1 de janeiro de 1970).

Nem todas as operações e drivers de banco de dados oferecem suporte à faixa completa de 64 bits. Você pode trabalhar com segurança com datas com anos dentro da faixa inclusiva de 0 a 9999.

Se nenhum documento com a title especificada existir na collection movies, a operação a seguir inserirá um documento com o campo dateAdded definido para a data atual:

db.movies.updateOne(
{ title: "Upsert Demo Film 2099" },
{
$set: { genre: "Drama" },
$setOnInsert: { dateAdded: new Date() }
},
{ upsert: true }
)
{
acknowledged: true,
insertedId: "...",
matchedCount: 0,
modifiedCount: 0,
upsertedCount: 1
}

Dica

Para retornar a data como uma string, utilize o método Date(). Por exemplo:

var myDateString = Date();

mongosh envolve os objetos do tipo Date com o auxiliar ISODate. No entanto, os objetos são tipos de Data.

O exemplo a seguir usa new Date() para retornar um objeto Date com o datetime UTC especificado:

var myDate = new Date("2016-05-18T16:00:00Z");

Você pode especificar datas como objetos ISODate.

O exemplo a seguir insere documentos com objetos ISODate no campo released na collection movies no banco de dadossample_mflix :

db.movies.insertMany( [
{ title: "ISODate Demo: Chocolate", released: new ISODate("2020-05-18T14:10:30.123Z") },
{ title: "ISODate Demo: Strawberry", released: new ISODate("2021-03-20T11:30:05.000Z") },
{ title: "ISODate Demo: Vanilla", released: new ISODate("2021-01-15T06:31:15.456Z") }
] )

O exemplo a seguir retorna documentos em que a data released é menor que ISODate especificada no operador $lt:

db.movies.find(
{ released: { $lt: ISODate("2021-02-25T10:03:46.234Z") },
title: /^ISODate Demo:/ },
{ title: 1, released: 1, _id: 0 }
).sort( { released: 1 } ).toArray()
[
{
title: 'ISODate Demo: Chocolate',
released: ISODate('2020-05-18T14:10:30.123Z')
},
{
title: 'ISODate Demo: Vanilla',
released: ISODate('2021-01-15T06:31:15.456Z')
}
]