MapReduce 中的 Golang GlobalSign mgo 查询

Golang GlobalSign mgo Query in MapReduce

import "github.com/globalsign/mgo"

job := &mgo.MapReduce{
    Map:    "function() { emit(this.name, 1) }",
    Reduce: "function(key, values) { return Array.sum(values) }",
    Out:    "res",

}

_, err = c.Find(nil).MapReduce(job, nil)

如何在上面的golang mgo mapreduce中添加'query'?

参考:

https://docs.mongodb.com/manual/core/map-reduce/ https://godoc.org/github.com/globalsign/mgo#MapReduce

设法通过 MongoDb 官方 godriver

完成了这项工作
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"

par := bson.D{
    {"mapreduce", "audit"},
    {"map", " function() { emit( this.name , 1 ); }"},
    {"reduce", "function(key, arr) { return Array.sum(arr); }"},
    {"out", "mr3"},
    {"query", bson.D{{"status", "SUCCESS"}}},
}

sr := db.RunCommand(nil, par)

MapReduce 是 Find 返回的 Query 结构的函数。因此,为了将您的 MapReduce 应用于查询结果,只需将查询文档添加到查找函数即可:

c.Find(query).MapReduce(job,result)