2016-09-09 6 views
1

私はこの質問の著者は、他の男が答えとして掲載溶液でいたのと同じ問題を解決: Unwind empty array in mongodbMongoDBの集計プロジェクト+アンワインドは、空の配列

私は今、私のMongoDB /マングースを更新し、これらの日私は

MongoError:エラーを取得して、トップレベルの_idフィールドは現在、除外のためにサポートされている唯一のフィールドであるMongoのが原因で0の値で、今のプロジェクトからこのフィールドを「除外」しようとしたように思え

オブジェクトが{value:0}の配列を追加する必要があります。そうしないと、オブジェクトはアンワインド後に無視されるためです。

{ $match: parameter}, 
    { $unwind : "$items" }, 
    { $project: { 
    itemName: '$items.name'}, 
    itemValue : "$items.value", 
    discount : { $cond : [ { $eq : ["$items.discounts", [] ]}, [ { value : 0} ], '$items.discounts'] } 
    }}, 
    { $unwind: "$discount"}, 

他にもこの問題の新しい解決方法がありますか? ご協力いただきありがとうございます。私のため

{ $match: parameter}, 
    { $unwind : "$items" }, 
    { $project: { 
    itemName: '$items.name'}, 
    itemValue : "$items.value", 
    discount : { $cond : [ { $eq : ["$items.discounts", []}, [ null ], '$items.discounts'] } 
    }}, 
    { $unwind: "$discount"} 

上記作品:

+0

あなたの質問をテストのためのいくつかのサンプル文書とそれらの文書からの予想される出力を含むように質問できますか? – chridam

答えて

0

私は本当に最初の私は集約を変更します、あなたの問題を理解していません。私はあなたの好きなエディタやmongoshellで試して、それが動作しているかどうかを確認することをお勧めします。

+0

これは私のために働いた、ありがとう。 –