No MongoDB, o
Date()
retorna uma data como uma string ou como um objeto Date. - Quando você o chama como
Date()
, ele retorna a data atual como uma string nomongo
casca. - Quando você o chama como
new Date()
, ele retorna a data atual como um objeto Date.
Você também pode fornecer uma data específica como argumento para
new Date()
, para que ele use essa data. Exemplo – Date()
Aqui está um exemplo de como inserir um documento em uma coleção e usar
Date()
como o valor de um dos campos:db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
)
Depois de executar esse código, podemos dar uma olhada no documento resultante:
db.dogs.find().pretty()
Resultado:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)" }
Podemos ver que o
lastModified
campo de data usa uma string de data como seu valor. Exemplo – new Date()
Como mencionado, se você quiser retornar um objeto de data em vez de uma string de data, use
new Date()
. Exemplo:
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Simplesmente prefixando
Date()
com new
resulta em um objeto Date em vez de uma string de data. Agora vamos verificar a coleção de documentos novamente:
db.dogs.find().pretty()
Resultado:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
{
"_id" : 2,
"name" : "Wag",
"lastModified" : ISODate("2021-01-27T00:19:08.862Z")
}
Podemos ver que a data no segundo documento foi empacotada com o
ISODate()
ajudante. O ISODate está em UTC. Forneça uma data específica
Você pode fornecer sua própria data ao chamar
Date()
método. Para fazer isso, passe uma string de data ISO-8601 com um ano dentro do intervalo inclusivo
0
através de 9999
para a new Date()
construtor ou o ISODate()
função. Aqui está um exemplo.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
)
Agora vamos verificar o documento:
db.dogs.find( { "_id": 1 } ).pretty()
Resultado:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)", "born" : ISODate("2020-10-07T00:00:00Z") }
Podemos ver que o campo born foi adicionado e definido para a data fornecida.
Você pode fornecer a data nos seguintes formatos.
Formato | Descrição |
---|---|
YYYY-mm-dd | Retorna o ISODate com a data especificada. |
YYYY-mm-ddTHH:MM:ss | Especifica a data e hora no fuso horário local do cliente e retorna o ISODate com a data e hora especificada em UTC. |
YYYY-mm-ddTHH:MM:ssZ | Especifica a data e hora em UTC e retorna o ISODate com a data e hora especificada em UTC. |
Inteiro | Você também pode fornecer um número inteiro como valor. Quando você faz isso, ele especifica a data e hora como milissegundos desde a época do Unix (1 de janeiro de 1970) e retorna o ISODate resultante instância. |
Época Unix
Aqui está um exemplo de especificação de um inteiro como argumento para
new Date()
. Fazer isso especifica a data e hora como milissegundos desde a época do Unix (1 de janeiro de 1970) e retorna o
ISODate
resultante instância. db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
)
Agora vamos verificar o documento:
db.dogs.find( { "_id": 2 } ).pretty()
Resultado:
{ "_id" : 2, "name" : "Wag", "lastModified" : ISODate("2021-01-27T00:19:08.862Z"), "born" : ISODate("2020-09-27T11:56:08.012Z") }