【发布时间】:2020-11-29 05:03:53
【问题描述】:
我是 Mongodb 的初学者,下面给出我的数据
{ "client_id" : 1, "invoice":[{"invoice_date" : "20-07-2020", "invoice_month" : "July 2020","account_status" : "Active"}]}
{ "client_id" : 1, "invoice":[{"invoice_date" : "20-07-2020", "invoice_month" : "July 2020","account_status" : "Active"}]}
{ "client_id" : 1, "invoice":[{"invoice_date" : "30-07-2020", "invoice_month" : "July 2020","account_status" : "Active"}]}
{ "client_id" : 2, "invoice":[{"invoice_date" : "03-08-2020", "invoice_month" : "August 2020","account_status" : "Active"}]}
{ "client_id" : 2, "invoice":[{"invoice_date" : "05-05-2020", "invoice_month" : "August 2020","account_status" : "Active"}]}
{ "client_id" : 3, "invoice":[{"invoice_date" : "10-06-2020", "invoice_month" : "June 2020","account_status" : "Active"}]}
我希望计数没有所有重复值,并在下面提到预期结果
{"client_id": 2 , "invoice_month" : "August 2020", "count": 1}
{"client_id": 1 , "invoice_month" : "July 2020", "count": 1}
{"client_id": 3 , "invoice_month" : "June 2020", "count": 1}
我在下面使用 aggregate,但它计数所有重复
[
{
"$match": {
"client_id": "1",
"invoice.account_status": "Active"
}
},
{
"$unwind": "$invoice"
},
{
"$group": {
"_id": '$invoice.invoice_month',
"count": {"$sum": 1}
}
}
]
【问题讨论】:
-
是什么导致文档重复?
-
实际上我想根据月份和 client_id 获得计数,所以我不希望当月重复计数@TomSlabbaert
-
所以我们不能计数,因为计数永远是 1?
-
是的,我想根据月份为特定的 client_id 设置 1 @TomSlabbaert
-
很抱歉,但我仍然不明白问题所在或您要达到的目标。看来您发布的聚合工作正常?
标签: mongodb mongodb-query pymongo