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
Dateconté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).
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.
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 oISODatecom a data especificada.new Date("<YYYY-mm-ddTHH:MM:ss.sss>")especifica o horário no fuso horário local do cliente e retorna oISODatecom o horário especificado em UTC.ss.sssespecifica segundos (ss) e milissegundos (.sss). Os milissegundos são configurados para0se omitidos.new Date("<YYYY-mm-ddTHH:MM:ss.sssZ>")especifica a data e hora em UTC e retorna oISODatecom o datetime especificado em UTC.ss.sssespecifica segundos (ss) e milissegundos (.sss). Os milissegundos são configurados para0se 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ânciaISODateresultante.
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 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
Uso variável de agregação AGORA para atualizar com pipeline de agregação
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 objeto 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");
Inserir e retornar objetos ISODate
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') } ]