MongoDB $ DateFromStrings Operator

MongoDB $ DateFromStrings Operator
La tubería de agregación $ dateFromString Operator of MongoDB cambia una cadena de fecha/hora en un objeto de fecha. El $ dateFromString debe proporcionarse con el argumento de la marca de datos donde se asigna el valor de la fecha para transformarse. El operador $ dateFromString también incluye la zona horaria, el formato, el ondError y los parámetros Onnull que son opcionales. También incluye algunas características adicionales, como la capacidad de personalizar el formato de la fecha y la zona horaria. Por lo tanto, con el $ dateFromString, podemos convertir las fechas de tipo de cadena en el objeto de fecha.

Cómo funciona el operador $ dateFromString en MongoDB

El uso del operador $ dateFromString en MongoDB es convertir el formulario de cadena de una fecha en el objeto de fecha. Aquí, convertimos la fecha de cadena de los documentos que se especifican en la colección MongoDB. Generamos la colección "Datesheet" dentro de la carcasa MongoDB donde seguimos la siguiente consulta para insertar algunos documentos dentro de ella. Estos documentos se insertan con el campo que contiene la fecha de la cadena.

db.Hoja de fecha.insertmany ([

"_id": 1,
"Fecha": "2023-04-30",
"TimeZone": "America/New_york"
,

"_id": 2,
"Fecha": "1-5-2021",
TimeZone: "UTC"
,

"_id": 3,
"Fecha": "10/02/2021",
"TimeZone": "America/New_york"
,

"_id": 4,
"Fecha": NULL,
"TimeZone": "UTC"
,

"_id": 5,
"Fecha": "20211-03-05T04: 35: 01.066 ",
"TimeZone": "GMT"

])

Ahora, la consulta de insertar los documentos muestra que los documentos se almacenan con éxito en la colección "Datesheet". Podemos usarlo en el operador $ dateFromString donde el campo con la fecha de la cadena se convierte en el objeto de fecha de MongoDB.


Reconocido: verdadero,
insertedids: '0': 1, '1': 2, '2': 3, '3': 4, '4': 5

Ejemplo 1: Uso del operador MongoDB $ dateFromString para obtener el objeto de fecha

El $ dateFromString se implementa para la transformación de la fecha especificada en el objeto de fecha. Hemos dado un documento al que queremos esta transformación. El documento se da como la expresión "_id: 1" a la etapa de $ coincidencia. Primero, el documento con el valor "_id" que se almacena como "1" coincide con la colección "Datesheet". Entonces, el operador de proyecto $ se realiza. El operador de proyecto $ se establece con el atributo "dateObject" donde se requiere el operador $ dateFromString para la operación de transformación de fecha.

El operador $ dateFromString se pasa con el argumento "DataString" donde se define el campo "$ fecha" que debe transformarse en un objeto de fecha. Después de eso, pasamos el argumento de la "zona horaria" al operador $ dateFromString con una zona horaria de "America/New_york".

db.Hoja de fecha.agregado ([
$ Match: _id: 1,

$ Proyecto:
DateObject:
$ dateFromString:
DataString: '$ date',
TimeZone: 'America/New_york'



])

El operador $ dateFromString mencionado anteriormente devuelve los siguientes resultados donde cada campo de fecha se cambia a American DateTime:

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

Ejemplo 2: Uso del operador MongoDB $ dateFromString con el parámetro OnError

El operador $ DateFromString lanza un error si su colección contiene documentos con cadenas de fecha que no se pueden analizar a menos que pasemos una declaración de agregación al parámetro OnError adicional. La fecha no válida se devuelve en su valor de cadena original a través del parámetro OnError. Tenemos un documento con el valor "_id" de "5" cuyo campo de fecha $ proporciona los valores de fecha no válidos. Coincidimos primero con ese documento con la etapa de $ Match. Después de eso, utilizamos el operador del proyecto $ para llamar al funcionamiento del operador $ dateFromString. El operador $ dateFromString se define con el parámetro de entrada "DataString" donde se asigna el campo $ date.

A continuación, definimos el parámetro de zona horaria con la hora del este. Luego, el parámetro "onError" se establece con el mensaje de error que se genera cuando el $ dateFromString encuentra el error al transformar la fecha de la cadena en el objeto de fecha.

db.Hoja de fecha.agregado ([
$ Match: _id: 5,

$ Proyecto:
DateObject:
$ dateFromString:
DataString: '$ date',
TimeZone: 'America/New_york',
OnError: "Se produjo una excepción mientras analizaba la fecha de la cadena"



])

Desde el "20211-03-05T04: 35: 01.La fecha de cadena de 066 "no es válida, el servidor MongoDB genera el mensaje de error establecido dentro del parámetro OnError.

[

_id: 5,
DateObject: 'Se produjo una excepción mientras analizaba la fecha de la cadena'

]

Ejemplo 3: Uso del MongoDB $ dateFromString con el parámetro OnNull

Cuando NULL se coloca en el campo de la fecha, podemos requerir que $ dateFromString proporcione una fecha que corresponde a la época UNIX en lugar de nulo desde el argumento Onnull. Cualquier expresión válida se puede utilizar como el valor para el argumento OnNull. Aquí, tenemos un documento que tiene el campo de fecha como "nulo". La etapa de Match $ coincide con el documento que se analizará por el operador $ DateFromString. Asignamos el campo de fecha "$ date" en el argumento "DataString" y también el parámetro de zona horaria con el campo $ timonzone al operador $ dateFromString. Después de eso, tenemos el parámetro OnNull que asigna una nueva fecha (0) para devolver el objeto de fecha de la época.

db.Hoja de fecha.agregado ([
$ Match: _id: 4,

$ Proyecto:
fecha:
$ dateFromString:
DataString: '$ date',
TimeZone: '$ TimeZone',
Onnull: nueva fecha (0)



])

Dado que la fecha no se establece en el documento y contiene el valor nulo, la fecha analizada resultante que devuelve la consulta anterior ha transcurrido desde el 1 de enero de 1970.

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

Ejemplo 4: Uso del operador MongoDB $ dateFromString con el parámetro de formato

Podemos personalizar el formato utilizando el argumento de formato opcional del operador $ dateFromString para la cadena de fecha/hora proporcionada. El formato predeterminado del objeto de fecha es "%y-%m-%dt%h:%m:%s.%Lz "que se devuelve por el operador $ dateFromString en los ejemplos anteriores. Transformamos el documento que se especifica en la etapa $ coincidencia. El documento tiene el valor de fecha de cadena de "10/02/2021", donde el décimo valor puede ser la fecha o un mes. Del mismo modo, el valor "02" en la fecha especificada puede ser la fecha o un mes.

Para esto, establecemos el parámetro "formato" en el operador $ dateFromString. Para especificar con precisión cuál, la opción de "formato" se usa en el formato "%m/%d/%y". El operador $ dateFromString analiza la fecha especificada del documento en el objeto de fecha en la especificación de formato dada.

db.Hoja de fecha.agregar([
$ Match: _id: 3,

$ Proyecto:
fecha:
$ dateFromString:
DataString: '$ date',
Formato: "%m/%d/%y"




])

La fecha de la cadena se analiza en el objeto Fecha del formato especificado.

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

Ejemplo 5: Uso del operador MongoDB $ DateFromString para obtener el objeto Fate en formato de la Semana ISO

También podemos expresar las fechas en formato ISO 8601 con algunos especificadores de formato diferentes. Usamos el documento de "_id" igual a "2" para obtener el objeto de fecha analizado en el formato de la semana ISO. Establecemos la especificación del parámetro de formato como "%u-%v-%g" dentro del operador $ dateFromString. La "U" denota el año, "V" indica los días de la semana, y "G" representa el año de la semana en formato ISO 8601.

db.Hoja de fecha.agregar([
$ Match: _id: 2,

$ Proyecto:
fecha:
$ dateFromString:
DataString: '$ date',
Formato: "%u-%v-%g"




])

La fecha de cadena "1-5-2021" del documento coincidente se analiza en la fecha del formato de la semana ISO como se muestra en lo siguiente:

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

Conclusión

Este artículo contiene todo el conocimiento informativo sobre el operador $ DateFromString de MongoDB. Usamos el operador $ dateFromString para analizar la fecha del formato de cadena en el objeto de fecha. El $ dateFromoperator se usa aquí junto con su parámetro opcional para explorar el funcionamiento de estos parámetros para transformar el valor de la fecha de la cadena. Además, empleamos el $ date desde la transformación de la cadena en las especificaciones de formato dadas.