sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik waarden met een lengte nul behouden tijdens de $unwind-fase van de geaggregeerde pijplijn in Mongo?

Wijzig uw project fase in de pijplijn zoals hieronder:

De projection stage doet de volgende twee dingen:

  • Als de itemsarray null is of does not exist , berekent de waarde van het itemveld als [] (een lege array.)
  • Controleert vervolgens of de size van de zojuist berekende items veld is 0 , als het 0 is en verandert vervolgens de waarde in een array met standaardobject.

Stagecode:

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



  1. Bepaal in een mongodb-groep / kaartopdracht het percentage van het totaal van de groep

  2. MongoDB vs MySQL NoSQL - Waarom Mongo beter is

  3. mongodb kon geen verbinding maken met de server

  4. Redis, Node.js en Socket.io:Cross-server authenticatie en node.js begrip