实现MongoDB map-reduce
Map-reduce是一种数据处理范例,用于将大量数据压缩为有用的聚合结果。
让我们创建一个包含文档的集合-
> db.demo280.insertOne({"CustomerName":"Chris","isMarried":true});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e49116edd099650a5401a62")
}
> db.demo280.insertOne({"CustomerName":"Mike","isMarried":false});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e491170dd099650a5401a63")
}
> db.demo280.insertOne({"CustomerName":"David","isMarried":false});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e491170dd099650a5401a64")
}
> db.demo280.insertOne({"CustomerName":"Bob","isMarried":true});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e491171dd099650a5401a65")
}在find()方法的帮助下显示集合中的所有文档-
> db.demo280.find();
这将产生以下输出-
{ "_id" : ObjectId("5e49116edd099650a5401a62"), "CustomerName" : "Chris", "isMarried" : true }
{ "_id" : ObjectId("5e491170dd099650a5401a63"), "CustomerName" : "Mike", "isMarried" : false }
{ "_id" : ObjectId("5e491170dd099650a5401a64"), "CustomerName" : "David", "isMarried" : false }
{ "_id" : ObjectId("5e491171dd099650a5401a65"), "CustomerName" : "Bob", "isMarried" : true }以下是实现MongoDBmapreduce的查询-
> db.demo280.mapReduce(
... function() { emit(this.isMarried,true); },
...
... function(key, values) {return Array.sum(values)}, {
... query:{isMarried:true},
... out:"Output"
... }
...)这将产生以下输出,显示总共2个与查询匹配的文档(输入:2个),并发出2个结果(发出:2个)-
{
"result" : "Output",
"timeMillis" : 1241,
"counts" : {
"input" : 2,
"emit" : 2,
"reduce" : 1,
"output" : 1
},
"ok" : 1
}热门推荐
8 年月日祝福语简短
10 修祖屋祝福语简短
11 叔叔生日祝福语简短励志
12 给表弟的祝福语简短
13 生日牌祝福语英语简短
14 特别的端午祝福语简短
15 对疫情的简短祝福语
16 祝福语写给自己的简短
17 爱情祝福语大全 简短实际
18 送灯祝福语简短独特