Mongodb mongo的聚合
以下是我的数据库中的文档:Mongodb mongo的聚合,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,以下是我的数据库中的文档: { "_id" : ObjectId("58635ac32c9592064471cf5b"), "agency_code" : "v5global", "client_code" : "whirlpool", "project_code" : "whirlpool", "date" : { "datetime" : 1464739200000.0, "date" : 146473920
{
"_id" : ObjectId("58635ac32c9592064471cf5b"),
"agency_code" : "v5global",
"client_code" : "whirlpool",
"project_code" : "whirlpool",
"date" : {
"datetime" : 1464739200000.0,
"date" : 1464739200000.0,
"datejs" : ISODate("2016-06-01T00:00:00.000+0000"),
"datetimejs" : ISODate("2016-06-01T00:00:00.000+0000"),
"month" : NumberInt(5),
"year" : NumberInt(2016),
"day" : NumberInt(1)
},
"user" : {
"promoter_id" : NumberInt(19),
"promoter_name" : "Hira Singh Pawar",
"empcode" : "519230"
},
"counter" : {
"store_id" : NumberInt(4),
"store_name" : "Maya Sales ",
"chain_type" : "BS",
"address" : "6 Filamingo Market , Hissar",
"city" : "Hissar",
"state" : "Faridabad",
"region" : "North",
"sap_code" : "N_Far_91103948_1",
"unique_tp_code" : "91103948",
"location" : "6"
},
"insertedon" : {
"date" : 1464739200000.0,
"datejs" : ISODate("2016-06-01T00:00:00.000+0000"),
"datetimejs" : ISODate("2016-06-01T00:00:00.000+0000")
},
"insertedby" : "akshay",
"manager" : {
"manager_id" : NumberInt(5943),
"manager_name" : "Sonu Singh"
},
"type" : "display",
"data" : {
"brand" : "whirlpool",
"sku" : "60",
"model_name" : "Icemagic Fresh",
"sub_cat_name" : "DC",
"cat_name" : "Refrigerator",
"value" : NumberInt(1)
},
"IsDeleted" : false
}
我想应用聚合,我必须将其与城市
、州
和地区
进行分组,如果该柜台出售了冰箱,我需要在结果中提供详细信息,例如,如果一个柜台出售了惠而浦公司的2台冰箱,我希望在结果中反映出来
计数器还可以销售洗衣机等其他物品。因此,如果他们已经销售了2台洗衣机,我希望得到{washingMachine:2}
的结果
我尝试了所有方法,但这里似乎没有任何效果:
db.display_mop.aggregate( // Pipeline [
// Stage 1
{ $match: { "project_code":"whirlpool" } },
// Stage 2
{
$group: {
_id: {
"userid": "$user.promoter_id",
"userName": "$user.promoter_name",
"usercode": "$user.empcode",
"storename": "$counter.store_name",
"address": "$counter.address",
"city": "$counter.city",
"state": "$counter.state",
"region": "$counter.region"
}
}
},
],
// Options
{ allowDiskUse: true }
你试过什么吗?或者你只是想有人帮你做?请将您尝试过的内容放在下面,以便人们能够提供帮助。是的,我尝试过。下面是我尝试过的代码。我实际上是mongo的新手,但下面是我正在处理的代码。db.display_mop.aggregate(//Pipeline[//Stage 1{$match:{“project_code”:“whirlpool”},//Stage 2{$group:{{id:{“userid:{”userid:“$user.promotor_id”,“用户名”:“$user.promotor\u name”,“usercode”:“$user.empcode”,“storename”:“$counter.store\u name”,“address”:“$counter.address”,“city”:“$counter.city”,“state”:“$counter.state”,“region”:“$counter.region”}},],//选项{allowDiskUse:true}那么,每个文档都代表一个售出的对象?我猜你想按州、地区、国家分组,并用售出对象的数量进行计数?根据你的说法,最终文档应该是什么样子?它应该是数据库中的数据,但如果该计数器售出了一台惠而浦冰箱,那么结果应该是惠而浦和t计数器已售出的数量。