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
}
]
:データはで返される形式は、次のようになりますオブジェクトの配列です
このより簡潔な結果を得るためにクエリを構造化する別の方法はありますか?
あなた自身の質問に答えるか、質問を削除することをお勧めします。 –