Modifique seu
project
estágio no pipeline como abaixo:A
projection
stage faz as duas coisas a seguir:- Se a matriz de itens for
null
oudoes not exist
, calcula o valor do campo de itens como[]
(uma matriz vazia.) - Em seguida, verifica se o
size
dositems
recém-calculados campo é0
, se for0
, altera seu valor para uma matriz com objeto padrão.
Código do palco:
db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
"items":{$cond:[
{$eq:[{$size:{$ifNull:["$items",[]]}},0]},
[{"quantity":0,"price":0}],
"$items"
]}}},
{$unwind:"$items"},
...
])