Date() e Datetime
Nesta página
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).
Compatibilidade
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
Sintaxe
Você pode especificar um dos seguintes formatos:
Date()
retorna a data atual como uma string nomongosh
.new Date()
retorna a data atual como um objeto Data.mongosh
encapsula o objeto Data com o auxiliar doISODate
. OISODate
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 oISODate
com a data especificada.new Date("<YYYY-mm-ddTHH:MM:ss>")
especifica o horário no fuso horário local do cliente e retorna oISODate
com o horário especificado em UTC.new Date("<YYYY-mm-ddTHH:MM:ssZ>")
especifica a data e hora em UTC e retorna oISODate
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ânciaISODate
resultante.
Comportamento
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
.
Exemplos
Usar data em uma query
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 } )
Data de retorno como uma cadeia de caracteres
Para retornar a data como uma string, utilize o método Date()
. Por exemplo:
var myDateString = Date();
Data de retorno como Date
objeto <a class=\" \" href=\" \" title=\" \"><svg xmlns=\" \" width=\" \" height=\" \" fill=\" \" viewbox=\" \" class=\" \" role=\" \" aria-label=\" \"><path fill=\" \" d=\" \"> <path fill=\" \" d=\" \">
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");
Inserir e retornar ISODate
objetos
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") } ]