MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Método Data() do MongoDB


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 no mongo 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")
}