es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Filtrar por campo de fecha como cadena en CouchDB o MongoDB.

Tengo una fecha almacenada en formato de cadena en couchDb y quiero un selector en el cual pueda filtrar datos de los últimos 2 días.

El campo de fecha de cadena está en el formato “"2021-12-17T18:18:49.605Z"“.

Quiero agregar un selector de tal manera que extraiga datos de las últimas 48 horas, incluso si filtra por las últimas 2 fechas, sería genial para mí.

Puede hacerse mediante expresiones regulares, pero no estoy seguro. Lo siguiente funciona, pero solo para una fecha única.

{
   "selector": {
      "dateCreatedInBC": {
         "$regex": "^2022-01-05"
      }
   }
}

Quiero una expresión regular para la fecha 2022-01-05 o 2022-01-06.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para filtrar datos de los últimos 2 días en CouchDB usando un selector de expresiones regulares, podemos crear un patrón de regex que coincida con la cadena de fecha de las últimas 48 horas.

    Aquí tienes un ejemplo de patrón:

    /^2022-01-0[5-6]T\d{2}:\d{2}:\d{2}.\d{3}Z$/

    Este patrón coincide con cualquier cadena de fecha que comienza con “2022-01-0” seguido de “5” o “6” (que representan los posibles valores de fecha de los últimos 2 días), seguido de los caracteres restantes del timestamp.

    Para usar este patrón en nuestro selector de CouchDB, podemos modificar el ejemplo de selector existente de la siguiente manera:

    {
    “selector”: {
    “dateCreatedInBC”: {
    “$regex”: “^2022-01-0[5-6]T\d{2}:\d{2}:\d{2}.\d{3}Z$”
    }
    }
    }

    Ten en cuenta que necesitamos escapar las barras invertidas en el patrón de regex con una barra invertida adicional debido a la sintaxis JSON.

    Este selector coincidirá con cualquier documento cuyo campo “dateCreatedInBC” tenga un valor de cadena que represente una fecha de las últimas 48 horas.

Comments are closed.