プロジェクト
を変更します 以下のようにパイプラインのステージ:
プロジェクションコード> ステージは次の2つのことを行います:
- items配列が
null
の場合 または存在しません
、itemsフィールドの値を[]
として計算します (空の配列。) - 次に、
size
かどうかを確認します 計算されたばかりのitems
フィールドは0
です 、0
の場合 、次にその値をデフォルトオブジェクトの配列に変更します。
ステージコード:
db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
"items":{$cond:[
{$eq:[{$size:{$ifNull:["$items",[]]}},0]},
[{"quantity":0,"price":0}],
"$items"
]}}},
{$unwind:"$items"},
...
])