2017-03-09 4 views
0

私はドキュメントを照会し、3つの異なるシナリオの3つのカウントを1つのキーにリストする単一のオブジェクトを返そうとしています。ある複数のオブジェクトを返す

{ 
    response_main:{ 
    type: Schema.ObjectId, 
    ref: "topics" 
    }, 
    response_in: { 
    type: Number 
    } 
} 

response_inキーのニーズが、それは私は現在、この問題を解決しています0,1または2の方法であるか否かの判断がソートされる:ここでは、コレクションが編成されている方法です

Collection.aggregate([ 
    {$match: {response_main: mainTopic._id}}, 
    {$group: { 
    _id: { 
     $cond: {if: {$eq: ["$response_in", 0]}, then: "agree", else:{ 
     $cond: {if: {$eq: ["$response_in", 1]}, then: "neutral", else:{ 
      $cond: {if: {$eq: ["$response_in", 2]}, then: "disagree", else:false} 
     } 
     } 
    }, count: {$sum: 1} 
    }} 
], callback); 

:しかし、私はこのように見えるように返されたオブジェクトを好む

[ 
    { 
    "_id": "agree", 
    "count": 14 
    }, 
    { 
    "_id": "neutral", 
    "count": 12 
    }, 
    { 
    "_id": "disagree", 
    "count": 16 
    } 
] 

:データはで返される形式は、次のようになりますオブジェクトの配列です

このより簡潔な結果を得るためにクエリを構造化する別の方法はありますか?

+0

あなた自身の質問に答えるか、質問を削除することをお勧めします。 –

答えて

0

JSONレスポンスを送信する前にデータを再フォーマットしましたが、すべて正常です。

関連する問題