sql >> Databáze >  >> NoSQL >> MongoDB

Jak mohu zachovat hodnoty nulové délky během $unwind fáze souhrnného potrubí v Mongo?

Upravte svůj project fáze v potrubí, jak je uvedeno níže:

projection stage dělá následující dvě věci:

  • Pokud je pole položek null nebo does not exist , vypočítá hodnotu pole položek jako [] (prázdné pole.)
  • Dále zkontroluje, zda size z právě vypočítaných items pole je 0 , pokud je 0 , pak změní jeho hodnotu na pole s výchozím objektem.

Kód fáze:

db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
           "items":{$cond:[
                          {$eq:[{$size:{$ifNull:["$items",[]]}},0]},
                          [{"quantity":0,"price":0}],
                          "$items"
                          ]}}},
{$unwind:"$items"},
...
])



  1. Je možné neblokovat Redis pubsub?

  2. Jak zkontrolovat, zda kolekce existuje nebo ne MongoDB Golang

  3. Redis — nejlepší způsob, jak uložit velkou mapu (slovník)

  4. Budování škálovatelného procesu pomocí NiFi, Kafka a HBase na CDP