Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Date() e Datetime

Nesta página

  • Compatibilidade
  • Sintaxe
  • Comportamento
  • Exemplos
Date()

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

A especificação BSON declara que um Date objeto contém a data/hora UTC. UTC significa Tempo Universal Coordenado. A data/hora UTC armazena um valor inteiro 64bits não assinado, indicando o número de milissegundos após a unix epoch (janeiro 1st, 1970 em 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>") especifica o horário no fuso horário local do cliente e retorna o ISODate com o horário especificado em UTC.

  • new Date("<YYYY-mm-ddTHH:MM:ssZ>") especifica a data e hora em UTC e retorna o ISODate com o datetime especificado em UTC.

  • 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 não houver nenhum documento com _id igual a 1 na coleção products, a seguinte operação inserirá um documento com o campo dateAdded definido para a data atual:

db.products.updateOne(
{ _id: 1 },
{
$set: { item: "apple" },
$setOnInsert: { dateAdded: new Date() }
},
{ upsert: true }
)

Dica

Veja também:

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 seguinte cria uma coleção cakeSales com objetos ISODate no campo orderDate:

db.cakeSales.insertMany( [
{ _id: 0, type: "chocolate", orderDate: new ISODate("2020-05-18T14:10:30Z") },
{ _id: 1, type: "strawberry", orderDate: new ISODate("2021-03-20T11:30:05Z") },
{ _id: 2, type: "vanilla", orderDate: new ISODate("2021-01-15T06:31:15Z") }
] )

O exemplo a seguir retorna documentos em que orderDate é menor que ISODate especificado no operador $lt:

db.cakeSales.find( { orderDate: { $lt: ISODate("2021-02-25T10:03:46.000Z") } } )

Saída de exemplo:

[
{
_id: 0,
type: 'chocolate',
orderDate: ISODate("2020-05-18T14:10:30.000Z")
},
{
_id: 2,
type: 'vanilla',
orderDate: ISODate("2021-01-15T06:31:15.000Z")
}
]

Voltar

BulkWriteResult