ドキュメント内の特定の値の出現回数をカウントしようとしています。私は次のように構成されたドキュメントを持っています:
id: ObjectID("ABC123")
StoreItems: Array
0: Object
Type: "Apple"
Color: "Green"
Size: "Small"
Weight: "5"
1: Object
Type: "Orange"
Color: "Orange"
Size: "Small"
Weight: "8"
2: Object
Type: "Grapes"
Color: "Green"
Size: "Small"
Weight: "8"
以下を使用すると、グループ化の総数のみが表示され、特定のタイプごとには表示されません。
[
{
'$unwind': {
'path': '$StoreItems'
}
}, {
'$match': {
'StoreItems.Color': 'Green'
}
}, {
'$group': {
'_id': 'Type',
'Count': {
'$sum': 1
}
}
}
]
結果が欲しい: Apples: 1, Grapes:3
しかし、私は結果を得ているだけです: Type: 4
_id
for$group
ステートメントの作成方法を変更する必要があります。現在、これは静的な値Type
ですが、StoreItems.Type
(ドルで始まる)への参照が必要です。
{
'$group': {
'_id': '$StoreItems.Type',
'Count': {
'$sum': 1
}
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加