を使用する方法:
db.collectionName.aggregate(
{
"$group": {
"_id":'$created_at',
"count": {"$sum": 1},
"count_failure": {
"$sum": {
"$cond": [
{
"$id":
{ "$in": [ 0,100,101,102,103,104,105 ] }
},
1,
0
]
}
}
}
}
)
しかし、エラーが言う:Invalid operator "$id"
構文に何が問題なのですか?あるいは、私は間違ってクエリを書いています。私は$に集約パイプライン演算子はないと思われる
db.collectionName.aggregate(
{
"$group": {
"_id":'$created_at',
"count": {"$sum": 1},
"count_failure": {
"$sum": {
"$cond": [
{
"$or":[
{ "$eq": [ "$id", 0 ] },
{ "$eq": [ "$id", 100 ]},
{ "$eq": [ "$id", 101 ]},
{ "$eq": [ "$id", 102 ]},
{ "$eq": [ "$id", 103 ]},
{ "$eq": [ "$id", 104 ]},
{ "$eq": [ "$id", 105 ]}
]
},
1,
0
]
}
}
}
}
)
第1のやや難しいです。 2番目は簡単です。簡単な$または$グループが必要ですか?ホンコンはこの機能をリリースします。 –
@SomnathMuluk 3つのアプローチが示されているとすれば、「第3の方法」を意味すると思います。 '$ in'節が必要な場合は、最初に' $ cond'にフィードするように要求していると考えてください。そのような操作の構文はなんですか?あなたは比較したいフィールドをどこで指定しますか?あなたはそのような提案と共に[JIRA](https://jira.mongodb.org/secure/Dashboard.jspa)を投稿することを歓迎します。 –
はい、2,3番目のものは簡単です。すでに提案がhttps://jira.mongodb.org/browse/SERVER-6146 –