MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Metodo MongoDB Date()

In MongoDB, Date() restituisce una data come stringa o come oggetto Date.

  • Quando lo chiami come Date() , restituisce la data corrente come stringa nel mongo guscio.
  • Quando lo chiami come new Date() , restituisce la data corrente come oggetto Date.

Puoi anche fornire una data specifica come argomento per new Date() , in modo che utilizzi quella data.

Esempio – Date()

Ecco un esempio di inserimento di un documento in una raccolta e utilizzo di Date() come valore per uno dei campi:

db.dogs.insert(
  { 
    "_id" : 1,
    "name" : "Fetch", 
    "lastModified" : Date()
  }
)

Dopo aver eseguito quel codice, possiamo dare un'occhiata al documento risultante:

db.dogs.find().pretty()

Risultato:

{
	"_id" : 1,
	"name" : "Fetch",
	"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}

Possiamo vedere che il lastModified il campo data utilizza una stringa di data come valore.

Esempio – new Date()

Come accennato, se vuoi restituire un oggetto data invece di una stringa di data, usa new Date() .

Esempio:

db.dogs.insert(
  { 
    "_id" : 2,
    "name" : "Wag", 
    "lastModified" : new Date()
  }
)

Semplicemente anteponendo Date() con new risulta in un oggetto Date anziché in una stringa di data.

Ora controlliamo nuovamente la raccolta dei documenti:

db.dogs.find().pretty()

Risultato:

{
	"_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")
}

Possiamo vedere che la data nel secondo documento è stata racchiusa con ISODate() aiutante. L'ISODate è in UTC.

Fornire una data specifica

Puoi fornire la tua data quando chiami Date() metodo.

A tale scopo, passa una stringa di data ISO-8601 con un anno compreso nell'intervallo compreso 0 tramite 9999 al new Date() costruttore o ISODate() funzione.

Ecco un esempio.

db.dogs.update(
  { "_id" : 1 },
  { $set : { "born" : new Date( "2020-10-07" ) } }
)

Ora controlliamo il documento:

db.dogs.find( { "_id": 1 } ).pretty()

Risultato:

{
	"_id" : 1,
	"name" : "Fetch",
	"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)",
	"born" : ISODate("2020-10-07T00:00:00Z")
}

Possiamo vedere che il campo nato è stato aggiunto ed è stato impostato sulla data fornita.

Puoi fornire la data nei seguenti formati.

Formato Descrizione
YYYY-mm-dd Restituisce il ISODate con la data specificata.
YYYY-mm-ddTHH:MM:ss Specifica la data e l'ora nel fuso orario locale del client e restituisce ISODate con la data e l'ora specificata in UTC.
YYYY-mm-ddTHH:MM:ssZ Specifica la data e l'ora in UTC e restituisce ISODate con la data e l'ora specificata in UTC.
Intero Puoi anche fornire un numero intero come valore. Quando lo fai, specifica il datetime come millisecondi dall'epoca Unix (1 gennaio 1970) e restituisce il risultante ISODate esempio.

Epoca Unix

Ecco un esempio di come specificare un numero intero come argomento per new Date() .

In questo modo viene specificato il datetime in millisecondi dall'epoca Unix (1 gennaio 1970) e viene restituito il ISODate risultante esempio.

db.dogs.update(
  { "_id" : 2 },
  { $set : { "born" : new Date( 1601207768012 ) } }
)

Ora controlliamo il documento:

db.dogs.find( { "_id": 2 } ).pretty()

Risultato:

{
	"_id" : 2,
	"name" : "Wag",
	"lastModified" : ISODate("2021-01-27T00:19:08.862Z"),
	"born" : ISODate("2020-09-27T11:56:08.012Z")
}