MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak uniknąć przerw czasowych podczas agregacji OHLC w mongoDB?

Możesz dodać $cond operator do uwzględnienia przerw, po którym następuje $filter aby filtrować puste wartości tablicy.

Potrzebujesz dwóch zmian.

Pierwsza zmiana polegająca na przechowywaniu wartości [] dla przerw zamiast tablicy z wartościami null.

Zaktualizuj wewnętrzne wyrażenie $let na poniższe:

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

Druga zmiana polegająca na filtrowaniu pustych wartości tablicy z danych wyjściowych.

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy mongo może upsertować dane tablicy?

  2. Zmień nazwę ObjectId _id na id w deserializacji Jacksona za pomocą Jongo i MongoDB

  3. Zobacz postęp długo działającego zadania agregacji mongodb

  4. Czy można przenieść użytkowników z mojej bazy danych mongodb do puli użytkowników aws cognito?

  5. Błąd podczas instalacji mongodb na Ubuntu 16.04