Estoy luchando por entender la lógica detrás del formato de fecha de MongoDB, si guardo un campo así:
date: Date.now()en la base de datos se parece a:
date: 1633186879027 Tengo una fecha como 2021-08-27T19:00:38.000+00:00 y la guardo así:
date: "2021-08-27T19:00:38.000+00:00"en la base de datos se parece a:
date: "2021-08-27T19:00:38.000+00:00"y no es lo que quiero porque es una cadena y no puedo ordenar las cosas por fecha en ese momento.
así que traté de guardarlo así:
date: new Date("2021-08-27T19:00:38.000+00:00")y en la base de datos se parece a:
date: 2021-08-27T19:00:38.000+00:00sin paréntesis, como lo hace Mongodb para las cadenas, por lo que tampoco debe ser una cadena
¿Cómo se supone que debo guardarlo para que se vea como el primero ( 1633186879027 )? porque luego necesito ordenar las cosas por fecha y creo que ese es el formato correcto para usar?
MongoDB almacena datos usando BSON. la definicion esta aqui
Una fecha y hora se almacena como el número de milisegundos desde 1970-01-01 utilizando un número entero de 64 bits.
Date.now() devuelve un número entero, por lo que los datos de muestra se almacenarían como tipo BSON \x12 con el valor 1633186879027 .
new Date("2021-08-27T19:00:38.000+00:00") se almacenaría como tipo BSON \x09 con el valor 1630090838000 .
La date: 2021-08-27T19:00:38.000+00:00 fue generada por el controlador o la aplicación en el lado del cliente después de que se recuperó.
MongoDB admite directamente la clasificación por fechas.
También tenga en cuenta que si tiene fechas almacenadas como cadenas como "2021-08-27T19:00:38.000+00:00" , una especie lexicográfica de esas cadenas las pondría en orden cronológico.