Dans MongoDB, la Date()
renvoie une date sous forme de chaîne ou d'objet Date.
- Lorsque vous l'appelez comme
Date()
, il renvoie la date actuelle sous forme de chaîne dans lemongo
coquille. - Lorsque vous l'appelez comme
new Date()
, il renvoie la date actuelle sous la forme d'un objet Date.
Vous pouvez également fournir une date spécifique comme argument à new Date()
, pour qu'il utilise cette date.
Exemple :Date()
Voici un exemple d'insertion d'un document dans une collection et d'utilisation de Date()
comme valeur pour l'un des champs :
db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
)
Après avoir exécuté ce code, nous pouvons jeter un œil au document résultant :
db.dogs.find().pretty()
Résultat :
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)" }
Nous pouvons voir que le lastModified
le champ de date utilise une chaîne de date comme valeur.
Exemple :new Date()
Comme mentionné, si vous souhaitez renvoyer un objet date au lieu d'une chaîne de date, utilisez new Date()
.
Exemple :
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Préfixe simplement Date()
avec new
génère un objet Date plutôt qu'une chaîne de date.
Maintenant, vérifions à nouveau la collection de documents :
db.dogs.find().pretty()
Résultat :
{
"_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")
}
Nous pouvons voir que la date dans le deuxième document a été enveloppée avec le ISODate()
assistant. La date ISO est en UTC.
Fournir une date précise
Vous pouvez fournir votre propre date lors de l'appel de Date()
méthode.
Pour ce faire, passez une chaîne de date ISO-8601 avec une année comprise dans la plage inclusive 0
jusqu'à 9999
à la new Date()
constructeur ou le ISODate()
une fonction.
Voici un exemple.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
)
Vérifions maintenant le document :
db.dogs.find( { "_id": 1 } ).pretty()
Résultat :
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)", "born" : ISODate("2020-10-07T00:00:00Z") }
Nous pouvons voir que le champ né a été ajouté et qu'il a été défini sur la date fournie.
Vous pouvez fournir la date dans les formats suivants.
Format | Description |
---|---|
YYYY-mm-dd | Renvoie la ISODate avec la date spécifiée. |
YYYY-mm-ddTHH:MM:ss | Spécifie la date et l'heure dans le fuseau horaire local du client et renvoie le ISODate avec la date et l'heure spécifiées en UTC. |
YYYY-mm-ddTHH:MM:ssZ | Spécifie la date et l'heure en UTC et renvoie le ISODate avec la date et l'heure spécifiées en UTC. |
Entier | Vous pouvez également fournir un entier comme valeur. Lorsque vous faites cela, il spécifie la date et l'heure en millisecondes depuis l'époque Unix (1er janvier 1970) et renvoie le résultat ISODate exemple. |
Époque Unix
Voici un exemple de spécification d'un entier comme argument de new Date()
.
Cela spécifie la date et l'heure en millisecondes depuis l'époque Unix (1er janvier 1970) et renvoie le résultat ISODate
exemple.
db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
)
Vérifions maintenant le document :
db.dogs.find( { "_id": 2 } ).pretty()
Résultat :
{ "_id" : 2, "name" : "Wag", "lastModified" : ISODate("2021-01-27T00:19:08.862Z"), "born" : ISODate("2020-09-27T11:56:08.012Z") }