sql >> Database >  >> NoSQL >> MongoDB

MongoDB Date()-methode

In MongoDB is de Date() methode retourneert een datum als een string of als een Date-object.

  • Als je het aanroept als Date() , het retourneert de huidige datum als een tekenreeks in de mongo schelp.
  • Als je het aanroept als new Date() , het retourneert de huidige datum als een Date-object.

U kunt ook een specifieke datum opgeven als argument voor new Date() , zodat het die datum gebruikt.

Voorbeeld – Date()

Hier is een voorbeeld van het invoegen van een document in een verzameling en het gebruik van Date() als de waarde voor een van de velden:

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

Nadat we die code hebben uitgevoerd, kunnen we het resulterende document bekijken:

db.dogs.find().pretty()

Resultaat:

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

We kunnen zien dat de lastModified datumveld gebruikt een datumtekenreeks als waarde.

Voorbeeld – new Date()

Zoals vermeld, als u een datumobject wilt retourneren in plaats van een datumtekenreeks, gebruikt u new Date() .

Voorbeeld:

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

Gewoon voorafgaan aan Date() met new resulteert in een Date-object in plaats van een datumstring.

Laten we nu nog eens kijken naar de verzameling documenten:

db.dogs.find().pretty()

Resultaat:

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

We kunnen zien dat de datum in het tweede document is ingepakt met de ISODate() helper. De ISO-datum is in UTC.

Geef een specifieke datum op

U kunt uw eigen datum opgeven bij het aanroepen van de Date() methode.

Geef hiervoor een ISO-8601-datumstring met een jaar binnen het inclusieve bereik 0 via 9999 naar de new Date() constructor of de ISODate() functie.

Hier is een voorbeeld.

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

Laten we nu het document controleren:

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

Resultaat:

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

We kunnen zien dat het geboren veld is toegevoegd en is ingesteld op de opgegeven datum.

U kunt de datum in de volgende formaten opgeven.

Formaat Beschrijving
YYYY-mm-dd Retourneert de ISODate met de opgegeven datum.
YYYY-mm-ddTHH:MM:ss Specificeert de datetime in de lokale tijdzone van de client en retourneert de ISODate met de gespecificeerde datetime in UTC.
YYYY-mm-ddTHH:MM:ssZ Specificeert de datetime in UTC en retourneert de ISODate met de gespecificeerde datetime in UTC.
Geheel getal U kunt ook een geheel getal als waarde opgeven. Wanneer u dit doet, specificeert het de datetime als milliseconden sinds het Unix-tijdperk (1 januari 1970), en retourneert het de resulterende ISODate instantie.

Unix-tijdperk

Hier is een voorbeeld van het specificeren van een geheel getal als argument voor new Date() .

Als u dit doet, wordt de datetime gespecificeerd als milliseconden sinds het Unix-tijdperk (1 januari 1970), en wordt de resulterende ISODate geretourneerd instantie.

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

Laten we nu het document controleren:

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

Resultaat:

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


  1. $addFields als er geen $match is gevonden

  2. MongoDB-jokerteken in de sleutel van een query

  3. Wat is een cursor in MongoDB?

  4. Verkeerde afstandsberekening met MongoDB