MongoDB $ DATEFROMSTRINGS OPÉRATEUR

MongoDB $ DATEFROMSTRINGS OPÉRATEUR
Le pipeline d'agrégation $ l'opérateur de date de MongoDB modifie une chaîne de date / heure en un objet de date. Le $ datefromString doit être fourni avec l'argument DateString où la valeur de date est attribuée pour être transformée. L'opérateur de DatefromString comprend également les paramètres du fuseau horaire, du format, de l'onorror et du Onnull qui sont facultatifs. Il comprend également quelques fonctionnalités supplémentaires, comme la possibilité de personnaliser le format de la date et du fuseau horaire. Ainsi, avec le $ datefromstring, nous pouvons convertir les dates de type chaîne dans l'objet Date.

Comment fonctionne l'opérateur DatefromString à MongoDB

L'utilisation de l'opérateur DatefromString $ dans MongoDB est de convertir la forme de chaîne d'une date en l'objet Date. Ici, nous convertissons la date de chaîne des documents spécifiés dans la collection MongoDB. Nous générons la collection «Datesheet» dans la coque MongoDB où nous suivons la requête suivante pour insérer certains documents à l'intérieur. Ces documents sont insérés avec le champ qui contient la date de chaîne.

db.Dates.insertmany ([

"_id": 1,
"Date": "2023-04-30",
"Fuseau horaire": "America / New_york"
,

"_id": 2,
"Date": "1-5-2021",
Fuseau horaire: "UTC"
,

"_id": 3,
"Date": "10/02/2021",
"Fuseau horaire": "America / New_york"
,

"_id": 4,
"Date": null,
"fuseau horaire": "UTC"
,

"_id": 5,
"Date": "20211-03-05T04: 35: 01.066 ",
"fuseau horaire": "GMT"

])

Maintenant, la requête de l'insertion des documents montre que les documents sont stockés avec succès dans la collection «Datesheet». Nous pouvons l'utiliser sur l'opérateur de DatefromString où le champ avec la date de chaîne est converti en l'objet de date de MongoDB.


Reconnu: vrai,
insertEDID: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Exemple 1: Utilisation de l'opérateur MongoDB $ DATEFROMSTRING pour obtenir l'objet de date

Le $ DatefromString est déployé pour la transformation de la date spécifiée en l'objet de date. Nous avons donné un document auquel nous voulons cette transformation. Le document est donné comme l'expression «_id: 1» à l'étape de correspondance $. Tout d'abord, le document avec la valeur «_id» qui est stocké en tant que «1» est égalé dans la collection «Datesheet». Ensuite, l'opérateur de projet $ est effectué. L'opérateur de projet $ est défini avec l'attribut «DateObject» où l'opérateur de DatefromString est appelé pour l'opération de transformation de date.

L'opérateur DatefromString est passé avec l'argument «Datestring» où le champ «$ Date» est défini qui doit être transformé en un objet de date. Après cela, nous passons l'argument du «fuseau horaire» à l'opérateur de DatefromString avec un fuseau horaire de «America / New_york».

db.Dates.agrégat( [
$ correspond: _id: 1,

$ Project:
DateObject:
$ datefromstring:
datestring: '$ date',
Fuseau horaire: 'America / New_york'



])

L'opérateur DatefromString $ susmentionné renvoie les résultats suivants où chaque champ de date est modifié en American Datetime:

[_id: 1, dateObject: isodate ("2023-04-30t04: 00: 00.000z ")]

Exemple 2: Utilisation de l'opérateur MongoDB $ DATEFROMSTRING avec le paramètre ONERROR

L'opérateur DatefromString lance une erreur si votre collection contient des documents avec des chaînes de dattes qui ne peuvent être analysées que si nous transmettons une instruction d'agrégation au paramètre ONERROR supplémentaire. La date non valide est renvoyée dans sa valeur de chaîne d'origine via le paramètre ONERROR. Nous avons un document avec la valeur «_id» de «5» dont le champ Date $ fournit les valeurs de date non valides. Nous correspondons d'abord à ce document avec la scène $ Match. Après cela, nous utilisons l'opérateur de projet $ pour appeler le fonctionnement de l'opérateur DatefromString. L'opérateur DateFromString $ est défini avec le paramètre d'entrée «Datestring» où le champ $ Date est attribué.

Ensuite, nous définissons le paramètre du fuseau horaire avec l'heure orientale. Ensuite, le paramètre «OnError» est défini avec le message d'erreur qui est généré lorsque le $ DatefromString rencontre l'erreur tout en transformant la date de la chaîne en l'objet Date.

db.Dates.agrégat( [
$ correspond: _id: 5,

$ Project:
DateObject:
$ datefromstring:
datestring: '$ date',
Fuseau horaire: 'America / New_york',
OnError: "Une exception s'est produite lors de l'analyse de la date de la chaîne"



])

Depuis le «20211-03-05T04: 35: 01.066 ”La date de chaîne n'est pas valide, le serveur MongoDB génère le jeu de messages d'erreur dans le paramètre ONERROR.

[

_id: 5,
DateObject: «Une exception s'est produite lors de l'analyse de la date de la chaîne»

]]

Exemple 3: Utilisation du MongoDB $ DATEFROMSTRING avec le paramètre innull

Lorsque null est placé par rapport au champ de date, nous pouvons exiger que la date de la date de la date pour fournir une date qui correspond à l'époque Unix plutôt que null de l'argument onnull. Toute expression valide peut être utilisée comme valeur de l'argument onnull. Ici, nous avons un document ayant le champ de date comme «null». L'étape de Match $ correspond au document à analyser par l'opérateur de DatefromString. Nous attribuons le champ Date «$ Date» dans l'argument «Datestring» ainsi que le paramètre du Zonezone avec le champ $ Timezone à l'opérateur $ DatefromString. Après cela, nous avons le paramètre Onnull qui attribue une nouvelle date (0) pour retourner l'objet de date de l'époque.

db.Dates.agrégat( [
$ correspond: _id: 4,

$ Project:
date:
$ datefromstring:
datestring: '$ date',
Fuseau horaire: '$ Timezone',
onnull: nouvelle date (0)



])

Étant donné que la date n'est pas fixée dans le document et contient la valeur nulle, la date d'analyse résultante qui est renvoyée par la requête précédente s'est écoulée depuis le 1er janvier 1970.

[_id: 4, date: isodate ("1970-01-01t00: 00: 00.000z ")]

Exemple 4: Utilisation de l'opérateur MongoDB $ DATEFROMSTRING avec le paramètre de format

Nous pouvons personnaliser le format à l'aide de l'argument de format facultatif de l'opérateur DateFromString pour la chaîne de date / heure fournie. Le format par défaut de l'objet date est «% y-% m-% dt% h:% m:% s.% Lz ”qui est renvoyé par l'opérateur de DatefromString dans les exemples précédents. Nous transformons le document qui est spécifié en étape $ MATCH. Le document a la valeur de date de chaîne de «10/02/2021» où la 10e valeur peut être la date ou un mois. De même, la valeur «02» à la date spécifiée peut être la date ou un mois.

Pour cela, nous définissons le paramètre «format» dans l'opérateur de DatefromString. Pour spécifier précisément lequel, l'option «Format» est utilisée au format «% m /% d /% y». L'opérateur de DatefromString $ analyse la date spécifiée du document dans l'objet de date dans la spécification du format donné.

db.Dates.agrégat([
$ correspond: _id: 3,

$ Project:
date:
$ datefromstring:
datestring: '$ date',
Format: "% m /% d /% y"




])

La date de chaîne est analysée dans l'objet de date du format spécifié.

[_id: 3, date: isodate ("2021-10-02T00: 00: 00.000z ")]

Exemple 5: Utilisation de l'opérateur MongoDB $ DATEFROMSTRING pour obtenir l'objet de date au format ISO Week

Nous pouvons également exprimer les dates au format ISO 8601 avec quelques spécificateurs de format différents. Nous utilisons le document de «_id» égal à «2» pour obtenir l'objet de date d'analyse dans le format de la semaine ISO. Nous définissons la spécification du paramètre de format comme «% U-% V-% G» dans l'opérateur de Date de DatefromString. Le «U» indique l'année, «V» indique les jours de la semaine et «G» représente l'année de la semaine au format ISO 8601.

db.Dates.agrégat([
$ correspond: _id: 2,

$ Project:
date:
$ datefromstring:
datestring: '$ date',
Format: "% u-% V-% g"




])

La date de chaîne «1-5-2021» du document correspondant est analysée dans la date de format de la semaine ISO comme indiqué dans les éléments suivants:

[_id: 2, date: isodate ("2021-02-01T00: 00: 00.000z ")]

Conclusion

Cet article contient toutes les connaissances informatives concernant l'opérateur de DatefromString de MongoDB. Nous avons utilisé l'opérateur DatefromString $ pour analyser la date du format de chaîne dans l'objet Date. Le $ datefromoperator est utilisé ici avec son paramètre facultatif pour explorer le fonctionnement de ces paramètres pour transformer la valeur de la date de la chaîne. De plus, nous avons utilisé le $ DatefromString pour transformer la chaîne en spécifications de format donné.