MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana menghindari kesenjangan waktu saat menggabungkan OHLC di mongoDB

Anda dapat menambahkan $cond operator untuk memperhitungkan kesenjangan diikuti oleh $filter untuk memfilter nilai larik kosong.

Anda memerlukan dua perubahan.

Perubahan pertama untuk menyimpan nilai [] untuk celah alih-alih array dengan nilai nol.

Perbarui ekspresi $let dalam menjadi di bawah ini:

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

Perubahan kedua untuk memfilter nilai array kosong dari output.

{
  "$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. mongodb:haruskah saya selalu menggunakan opsi 'aman' pada pembaruan

  2. Hirarki multi level data dengan selalu disematkan

  3. mongodb Tidak dapat menerapkan pengubah $pull/$pullAll ke non-array, Cara menghapus elemen array

  4. Grup Bersarang Agregat Mongodb

  5. Menghapus kunci/nilai dari entri MongoDB yang ada