MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB Date()-Methode

In MongoDB das Date() -Methode gibt ein Datum entweder als Zeichenfolge oder als Datumsobjekt zurück.

  • Wenn Sie es als Date() aufrufen , gibt es das aktuelle Datum als String im mongo zurück Schale.
  • Wenn Sie es als new Date() aufrufen , gibt es das aktuelle Datum als Date-Objekt zurück.

Sie können auch ein bestimmtes Datum als Argument für new Date() angeben , sodass dieses Datum verwendet wird.

Beispiel – Date()

Hier ist ein Beispiel für das Einfügen eines Dokuments in eine Sammlung und die Verwendung von Date() als Wert für eines der Felder:

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

Nachdem wir diesen Code ausgeführt haben, können wir uns das resultierende Dokument ansehen:

db.dogs.find().pretty()

Ergebnis:

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

Wir können sehen, dass lastModified Das Datumsfeld verwendet eine Datumszeichenfolge als Wert.

Beispiel – new Date()

Wie bereits erwähnt, verwenden Sie new Date(), wenn Sie ein Datumsobjekt anstelle einer Datumszeichenfolge zurückgeben möchten .

Beispiel:

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

Einfach Date() voranstellen mit new ergibt ein Datumsobjekt statt einer Datumszeichenfolge.

Lassen Sie uns nun noch einmal die Dokumentensammlung überprüfen:

db.dogs.find().pretty()

Ergebnis:

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

Wir können sehen, dass das Datum im zweiten Dokument mit ISODate() umschlossen wurde Helfer. Das ISODate ist in UTC angegeben.

Geben Sie ein bestimmtes Datum an

Beim Aufruf von Date() können Sie Ihr eigenes Datum angeben Methode.

Übergeben Sie dazu eine ISO-8601-Datumszeichenfolge mit einem Jahr innerhalb des inklusiven Bereichs 0 bis 9999 zum new Date() Konstruktor oder das ISODate() Funktion.

Hier ist ein Beispiel.

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

Lassen Sie uns nun das Dokument überprüfen:

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

Ergebnis:

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

Wir können sehen, dass das Geburtsfeld hinzugefügt und auf das angegebene Datum gesetzt wurde.

Sie können das Datum in den folgenden Formaten angeben.

Format Beschreibung
YYYY-mm-dd Gibt das ISODate zurück mit dem angegebenen Datum.
YYYY-mm-ddTHH:MM:ss Gibt die Datumszeit in der lokalen Zeitzone des Clients an und gibt das ISODate zurück mit der angegebenen Datumszeit in UTC.
YYYY-mm-ddTHH:MM:ssZ Gibt die Datumszeit in UTC an und gibt das ISODate zurück mit der angegebenen Datumszeit in UTC.
Ganzzahl Sie können auch eine Ganzzahl als Wert angeben. Wenn Sie dies tun, gibt es die Datumszeit als Millisekunden seit der Unix-Epoche (1. Januar 1970) an und gibt das resultierende ISODate zurück Beispiel.

Unix-Epoche

Hier ist ein Beispiel für die Angabe einer ganzen Zahl als Argument für new Date() .

Dadurch wird die Datumszeit als Millisekunden seit der Unix-Epoche (1. Januar 1970) angegeben und das resultierende ISODate zurückgegeben Beispiel.

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

Lassen Sie uns nun das Dokument überprüfen:

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

Ergebnis:

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