Comment fonctionnent les $ datefRomparts et $ datetoparts à MongoDB
L'utilisation des $ datefRomparts et des opérateurs de $ DateToparts est démontrée ici pour récupérer les dates en conséquence. Nous avons besoin de la collection de MongoDB qui est utilisée pour travailler avec ces opérateurs. Nous donnons une collection «Childbirthdate» où les documents suivants sont insérés à l'aide de la commande d'insertion de MongoDB.
db.Addition.insertmany ([
"_id": 1,
"Birth_year": 2021,
"Birth_month": 09,
"Birth_Day": 21,
"Naissance_hour": 15,
"Birth_Minute": 60,
"Birth_second": 31
,
"_id": 2,
"Birth_year": 2021,
"Birth_month": 09,
"Birth_Day": 21,
"Naissance_hour": 15,
"Birth_Minute": 60,
"Birth_second": 31,
,
"_id": 3,
"Birth_year": 2023,
"Birth_month": 16,
"Birth_day": 90,
"Naissance_hour": 47,
"Birth_Minute": 190,
"Birth_second": 697
,
"_id": 4,
"Birth_year": 2022,
"Naissance_month": 0,
"Birth_Day": 0,
"Naissance_hour": 0,
"Naissance_minue": 0,
"Birth_second": 0
,
"_id": 5,
"Child_name": "Emily",
"Dob": Isodate ("2023-01-06T22: 35: 12.130Z ")
,
"_id": 6,
"Child_name": "Kim",
"Dob": Isodate ("2022-11-05T23: 10: 16.125Z ")
])
Les documents sont insérés dans la collection fournie comme indiqué dans la sortie précédente. Nous pouvons utiliser ces documents pour interroger les opérateurs de $ datefRomparts et $ DateToparts. Notez que nous utilisons sur l'opérateur de $ datefRomparts dans les quatre premiers documents car les dates de ces documents sont séparées. En plus de cela, l'opérateur $ DateToparts utilise les deux derniers documents car ils contiennent les objets à date unique.
Reconnu: vrai,
insertEDID: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5, '5': 6
Exemple 1: Utilisation de l'opérateur $ datefRomparts dans MongoDB
L'opérateur $ datefrumparts est utilisé ici sur le premier document de la collection donnée pour obtenir l'objet à date unique. L'expression «_id: 1» est spécifiée pour l'étape de correspondance $. Ensuite, nous avons le stade de projet $ où le champ «Dateresult» est inséré pour déployer l'opérateur de $ datefRomparts. L'opérateur $ DateFRomparts entre les paramètres constituants de la date avec les champs spécifiés du document correspondant pour donner l'objet date.
db.Addition.agrégat([
$ correspond: _id: 1,
$ Project:
Dateresult:
$ datefRomparts:
"année": "$ naissance_year", "mois": "$ naissance_month", "jour": "$ naissance_day", "hour": "$ naissance_hour"
])
La date unique est récupérée à partir de toutes les parties des dates dans la sortie par l'opérateur de $ datefromparts.
[_id: 1, dateresult: isodate ("2021-09-21t15: 00: 00.000z ")]
Exemple 2: Utilisation de l'opérateur $ datefRomparts avec un fuseau horaire spécifié à MongoDB
Nous pouvons également utiliser le paramètre du fuseau horaire au sein de l'opérateur $ datefRomparts pour obtenir l'objet de date d'un fuseau horaire donné. Nous utilisons d'abord l'opérateur $ Match pour faire correspondre le document prédéfini qui est «_id: 2». Ensuite, nous invoquons l'opérateur de $ datefRomparts dans le champ «Date» de l'étape du projet $. Nous utilisons tous les paramètres de date qui sont nécessaires pour obtenir l'objet de date en plus du paramètre «Timezone». Le «fuseau horaire» reçoit un fuseau horaire de «Europe / Londres» pour obtenir la date résultante dans cette zone spécifiée.
db.Addition.agrégat([
$ correspond: _id: 2,
$ Project:
date:
$ datefRomparts:
"année": "$ naissance_year", "mois": "$ naissance_month",
"Day": "$ naissance_day", "heure": "$ naissance_hour",
"Minute": "$ naissance_minue", "deuxième": "$ naissance_seconde", "fuseau horaire": "Europe / Londres"
])
L'opérateur $ DateFRomparts renvoie l'objet de date suivant du fuseau horaire donné:
[_id: 2, date: isodate ("2021-09-21t15: 00: 31.000z ")]
Exemple 3: Utilisation de l'opérateur $ datefRomparts avec une plus grande gamme de dates dans MongoDB
Ici, nous obtenons l'objet de date du deuxième document dont les pièces de date sont supérieures à la gamme. Au sein de l'opérateur de $ datefRomparts, nous utilisons les paramètres des constituants pour générer un seul objet de la date de la plage supérieure aux valeurs de date spécifiées. Nous définissons les champs des documents en fonction des paramètres constituants spécifiés. L'opérateur $ datefRomparts augmente l'année «2023» à «2024», puis définit la valeur du mois à «12» pour donner l'objet à date unique des valeurs de date non valides.
db.Addition.agrégat([
$ correspond: _id: 3,
$ Project:
DatefRomparts:
$ datefRomparts:
"année": "$ naissance_year",
"mois": "$ naissance_month",
"Jour": "$ naissance_day",
"heure": "$ naissance_hour",
"Minute": "$ naissance_minue",
"deuxième": "$ naissance_seconde"
])
Comme le montre la sortie, les constituants de date de l'objet de date retourné diffèrent des valeurs de date correspondantes dans le document. La raison en est que la date a été recalculée par $ datefromparts pour prendre en considération les paramètres de date qui sont en dehors de la plage attendue.
[_id: 3, datefRomparts: isodate ("2024-07-01t02: 21: 37.000z ")]
Exemple 4: Utilisation de l'opérateur $ datefRomparts avec une plage inférieure aux dates spécifiées dans MongoDB
Maintenant, nous avons un autre cas de l'opérateur $ DateFRomparts où les valeurs de date sont inférieures à la plage de dates valide. Nous correspondons au document qui contient les champs de date et d'heure au-delà de leurs gammes acceptables respectives. Le document dont «_id» est «3» est passé à l'intérieur de l'expression de l'étape de Match $. Après cela, nous créons le champ «DateFromparts» dans l'étape du projet $. Le champ «Datefromparts» est utilisé avec l'opérateur de $ datefromparts. L'opérateur $ DateFRomparts est passé avec ses paramètres associés pour obtenir l'objet de date. Puisque nous avons toutes les valeurs des paramètres de date dans le document correspondant zéro, ce qui est inférieur aux valeurs minimales des plages de date, l'opérateur $ datefRomparts réinitialise d'abord tous les paramètres de date pour générer l'objet à date unique.
db.Addition.agrégat([
$ correspond: _id: 4,
$ Project:
DatefRomparts:
$ datefRomparts:
"année": "$ naissance_year",
"mois": "$ naissance_month",
"Jour": "$ naissance_day",
"heure": "$ naissance_hour",
"Minute": "$ naissance_minue",
"deuxième": "$ naissance_seconde"
])
La date d'ISO unique résultante est formée dans ce qui suit par l'opérateur $ Datefromparts qui laisse tomber l'année «2022» par un et limite le mois à 12.
[_id: 4, datefRomparts: isodate ("2021-11-30t00: 00: 00.000z ")]
Exemple 5: Utilisation de l'opérateur $ DateToparts dans MongoDB
Maintenant, nous utilisons un autre opérateur $ DateToparts à partir de laquelle les pièces de date sont obtenues. Ici, nous avons une démonstration simple où nous correspondons au «_id» dont la valeur est «5» au stade initial. Après faire correspondre le document, l'étape du projet $ obtient les résultats de l'opérateur $ DateToparts dans le champ «DateinParts». L'opérateur $ DateToparts entre le paramètre «Date» qui est fourni avec le champ «$ dob». Le champ $ dob a l'objet de date qui est séparé en parties de date par l'opérateur $ DateToparts.
db.Addition.agrégat(
[
$ correspond: _id: 5,
$ Project:
_id: 0,
Dateinparts: $ dateToparts: date: "$ dob"
]]
)
L'opérateur $ DateToparts renvoie les pièces de date suivantes du champ $ dob du document correspondant:
[
Dateinparts:
Année: 2023,
Mois: 1,
Jour: 6,
heure: 22,
Minute: 35,
Deuxième: 12,
millisecondes: 130
]]
Exemple 6: Utilisation de l'opérateur $ DateToparts pour le format de date de la semaine ISO dans MongoDB
Nous pouvons utiliser l'option ISO8601 avec la vraie valeur pour mettre à jour le document renvoyé pour utiliser les champs de date de la semaine ISO. La date est calculée à l'aide de la spécification ISO 8601. Considérons que nous modifions le document qui a le «_id» égal à la valeur de «5». Dans ce document, nous appliquons l'opérateur $ DateToparts où le paramètre «Date» est défini avec le champ «$ dob». Le paramètre «ISO8601» est également donné avec la valeur qui est définie sur «vrai».
db.Addition.agrégat(
[
$ correspond: _id: 5,
$ Project:
_id: 0,
datePartSiso:
$ DateToparts:
Date: "$ dob",
ISO8601: Vrai
]]
).joli()
Les parties de date de ce document sont obtenues à partir de l'opérateur $ DateToparts qui contient le champ ISO Week et les valeurs de date.
[
datePartSiso:
Isoweekyear: 2023,
Isoweek: 1,
Isodayofweek: 5,
heure: 22,
Minute: 35,
Deuxième: 12,
millisecondes: 130
]]
Conclusion
Cet article a expliqué les termes de la méthode du pipeline d'agrégation MongoDB, $ datefRomparts et $ DateToparts. Les opérateurs de $ datefromparts et de $ DateToparts travaillent de manière opposée les unes aux autres. L'opérateur $ datefrumparts donne la date du format ISO à partir des pièces de date. D'un autre côté, les $ dateToparts prennent la date du format ISO pour retourner les pièces de date avec la valeur. Nous avons exploré ces opérateurs avec des cas d'exemples simples et complexes pour clarifier le concept d'utilisation des opérateurs de $ datefRomparts et de DateToparts à MongoDB.