Mapreduce pymongo.errors.OperationFailure表示ns不存在

Mapreduce pymongo.errors.OperationFailure表示ns不存在,mapreduce,Mapreduce,我得到了如下错误: 回溯(最近一次呼叫最后一次): pymongo.errors.OperationFailure:命令子([('mapreduce',), u'tweets'),('map',代码('function(){emit(this.via,1);}, {})),('reduce',Code('function(key,value){\n var res= 0;\n values.forEach(函数(v){res+=1})\n返回 命名空间上的{count:res};\n}\n',{

我得到了如下错误: 回溯(最近一次呼叫最后一次):

pymongo.errors.OperationFailure:命令子([('mapreduce',), u'tweets'),('map',代码('function(){emit(this.via,1);}, {})),('reduce',Code('function(key,value){\n var res= 0;\n values.forEach(函数(v){res+=1})\n返回 命名空间上的{count:res};\n}\n',{})),('out','via_count')]) 语料库.$cmd失败:ns不存在

代码为:

   from pymongo import MongoClient
   from bson.code import Code
   con = MongoClient()
   db     = con.Corpus
   tweets = db.tweets
   map    = Code("function() { emit(this.via, 1); }")
   reduce = Code(""" function(key,value) {
       var res = 0;
       values.forEach(function(v) {res += 1 })
       return {count: res};
    }
    """)

    result = tweets.map_reduce(map, reduce, "via_count")
    for doc in db.via_count.find():
        print(doc)

在命名空间语料库上。$cmd失败:ns不存在

这意味着语料库中没有名为“tweets”或“via_count”的集合


与mongodb中的原始查询不同,map_reduce函数在不存在的情况下不会生成新集合。

即使数据库不存在,也会删除相同的错误

对此有任何更新吗?我得到了同样的错误一些解释的例子会很好。这是回答问题,还是一个评论/单独的问题?这是一个评论,一个答案的增强。