MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Méthode MongoDB Date()

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