2016-06-24 15 views
0

を利用MongoDBのは、私はこのようになります文書のコレクションを持って集計平均結果

db.applications.aggregate([ 
     { $unwind: "$reviews" }, 
     { $group: { _id: "$_id", reviews: { $push: "$reviews" },          
       averageUserRating: { $avg: "$reviews.rating" } } }, 
     { $project: { _id: 0, _id: "$_id", reviews: 1, averageUserRating: 1 } }]); 

これは、必要に応じて、コンソール内で平均の正しい結果を生成します。

私は、結果を元のオブジェクトのaverageUserRatingフィールドにプッシュする必要があります。

次に、アプリケーションドキュメントを見ると、averageUserRatingはnullを返しています。

どうすればいいですか?

+1

あなたはバックエンドで使用していますか? – AndreaM16

+0

私はバックエンドでnode.js、express、mongooseを使用しています – wjfieseler

答えて

0

多分型INBプロジェクトは、そうされています。これを変更:

{ $project: { _id: 0, _id: "$_id", reviews: 1, averageUserRating: 1 } }]); 

へ:

{ $project: { _id: "$_id", reviews: 1, averageUserRating: 1 } }]); 
+0

ありがとうございます。ただし、数式自体は問題ではありません。この数式は、レビューの評価の平均を正しく生成しています。しかし、私はエクスプレスやマングース内でこの式を使ってアプリケーションオブジェクト内の結果を取得して保存する方法が不明です。 – wjfieseler

関連する問題