sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan undgår du tidsgab, mens du samler OHLC i mongoDB

Du kan tilføje $cond operatør til at tage højde for huller efterfulgt af $filter for at filtrere de tomme matrixværdier.

Du kræver to ændringer.

Den første ændring for at gemme []-værdier for huller i stedet for array med null-værdier.

Opdater indre $let-udtryk til nedenfor:

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

Den anden ændring for at filtrere de tomme matrixværdier fra outputtet.

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



  1. Enhedstest med MongoDB

  2. Hvordan kommer man uden om dette MongoDB/Node asynkrone problem?

  3. Gruppér efter datointervaller

  4. MongoDB $størrelse