在谷歌图表中显示MongoDB结果
display mongodb result in a google chart
我有一个MongoDB集合,其中包含一些商店的点击项目。如果有人单击某个项目,数据库将添加以下格式的 json:
{
"_id" : { "$oid" : "56cf06ce0b7707c83e5a8c64" },
"date" : { "$date" : 1456408270811 },
"name" : "Jura whisky",
"store" : "56c9bfed942693bb745229ef"
}
因此,数据库具有不同的项目,具有不同商店的不同日期。如果我想获取特定商店所有商品的所有点击次数,我使用此查询:
var id = global.actuallUser._doc._id;
id = id.toString();
global.databaseStatistic.collection(global.ARTICLEPRESS).aggregate(
[
{$match: {
$and: [
{
store: id,
date: {
$gte: new Date('12/01/2013'),
$lte: new Date('12/01/2017')
}
}
]
}},
{$group: {"_id": {name: "$name", day: {$dayOfMonth: "$date"},month: {$month: "$date"},year: {$year: "$date"}}, "count": {$sum: 1}}}
]
).toArray(function (err, result) {
res.send(result);
});
现在,我得到了一个对象数组,其属性为 Name, day....是否可以以这种格式获得此结果:
['date', 'name', 'count'],
['1.1.2000', Jura whisky, 400],
['1.1.2000', Potato, 460],
['1.1.2000', Pizza, 1120],
['2.1.2000', Jura whisky, 540]
所以我可以用谷歌图表 API 制作数据图表。
谢谢!
假设你results
JSON 对象作为 ajax 调用的结果。
var columns = Object.keys(results[0]);
var data = results.map(function (result) {
var tableRow = [];
columns.forEach(function (col) {
tableRow.push(result[col]);
});
return tableRow;
});
data
将包含要由谷歌图表呈现的表格行。
var dataTable = new google.visualization.DataTable();
columns.forEach(function (columnName) {
dataTable.addColumn(columnName);
});
dataTable.addRows(data);
相关文章:
- 检索MongoDB binData并显示为<img>src
- 在Jade中循环并显示来自Mongodb的数据
- 在玉石模板中显示Mongodb收藏
- 我的 Meteor 项目如何通过服务器端 MongoDB/集合查找查询可靠地显示信息
- 转换&用javascript将mongodb的UTC格式显示为EST格式
- 在谷歌图表中显示MongoDB结果
- 将一天中的时间保存为mongodb中的数字,但以人类格式显示(使用流星自动形成)
- Nodejs MongoDB 本机驱动程序不显示文档
- 如何在 MongoDB 中也聚合显示其他字段
- MongoDb - 具有空值的有界数组显示无界
- Mongoose/MongoDB 结果字段在 Javascript 中显示为未定义
- 用HTML显示MongoDB文档
- 显示来自mongodb的所有数据混合,并在doT.js模板引擎中进行渲染
- MongoDB-根据用户名显示不同的内容
- 只从Mongodb中获取第二行,并使用Jade进行显示
- 使用node.js将数据显示在从mongodb检索到的网页上
- 如何在Angular/Express/MongoDB应用中通过其ID显示单个博客文章
- MongoDB Map Reduce显示"[object object]"作为键,尽管对它们进行类型
- AngularJS不显示MongoDB数组中的对象
- 在控制台或浏览器中显示mongodb的值