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

Hvordan kan jeg bevare nullængdeværdier under $afviklingsfasen af ​​den samlede pipeline i Mongo?

Rediger dit project fase i pipelinen som nedenfor:

projection stage gør følgende to ting:

  • Hvis elementer-arrayet er null eller does not exist , beregner elementets feltværdi som [] (en tom matrix.)
  • Næste kontrollerer, om size af de netop beregnede items feltet er 0 , iffit er 0 , og ændrer derefter dens værdi til et array med standardobjekt.

Fasekode:

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



  1. Sådan opdateres et underdokument i mongodb

  2. Indsættelse af Java-objekt til MongoDB-samling ved hjælp af Java

  3. Konverter datoforskel til år for at beregne alder i MongoDB

  4. Indsæt eller opdater underdokument sikkert i MongoDB