我在mongodb collection.Please中有很多这样的行,请注意,在“类别”中有许多键值对。
是否有一种方法可以编写一个聚合查询,将类别中的所有值与日期(如日期)上的谓词之和:/ 20130202 /--它从20130202开始获取所有行,并对值体育运动、国家值、int值、金融值等进行汇总,并输出值,即。
体育: 42,国家: 6,国际: 11,金融: 9,其他:17,科技: 20,音乐: 34
{
"_id" : ObjectId("51c34a871d56bd16c34e7887"),
"Date" : "2013020219",
"category" : {
"sport" : 40,
"national" : 2,
"international" : 6,
"finance" : 2,
"others" : 16,
"tech" : 10,
"Music" : 32
}
}
{
"_id" : ObjectId("51c34a871d56bd16c34e7887"),
"Date" : "2013020218",
"category" : {
"sport" : 2,
"national" : 4,
"international" : 5,
"finance" : 7,
"others" : 1,
"tech" : 10,
"Music" : 2
}}
发布于 2013-06-21 21:31:55
你可能想试试:
db.coll.aggregate( [
{ $match: { Date: /20130202/ } },
{ $group: { _id: null,
sport: { $sum: "$category.sport" },
national: { $sum: "$category.national" },
international: { $sum: "$category.international" },
finance: { $sum: "$category.finance" },
others: { $sum: "$category.others" },
tech: { $sum: "$category.tech" },
Music: { $sum: "$category.Music" }
} }
] )https://stackoverflow.com/questions/17221479
复制相似问题