sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo evitar lapsos de tiempo al agregar OHLC en mongoDB

Puede agregar $cond operador para tener en cuenta las lagunas seguido de $filter para filtrar los valores de matriz vacíos.

Necesita dos cambios.

El primer cambio para almacenar [] valores para espacios en lugar de una matriz con valores nulos.

Actualice la expresión interna $let a continuación:

{
  "$let":{
    "vars":{"five":...},
    "in":{
      "$cond":[
        {"$eq":["$$five",[]]},
        "$$five",
        [{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},0]},
         ....
        {"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},-1]}]
      ]
    }
  }
}

El segundo cambio para filtrar los valores de matriz vacíos de la salida.

{
  "$project":{
    "data":{
      "$let":{
        "vars":{"mints":...},
        "in":{"$filter":{"input":{"$map":...},as:"flr", "cond":{"$ne":["$$flr",[]]}}}
      }
    }
  }
}