pymongo.errors.OperationFailure说ns不存在

时间:2015-03-04 04:11:29

标签: mapreduce

我收到如下错误: 回溯(最近一次调用最后一次):

  

pymongo.errors.OperationFailure:命令SON([(' mapreduce',   你的推文'),('地图',代码(' function(){emit(this.via,1);}',   {})),(' reduce',Code(' function(key,value){\ n var res =   0; \ n values.forEach(function(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)

2 个答案:

答案 0 :(得分:2)

命名空间Corpus上的

。$ cmd失败:ns不存在

这意味着你没有收集名为'推文'或' via_count'在语料库中。

与mongodb中的原始查询不同,如果新的集合不存在,则map_reduce函数不会创建新的集合。

答案 1 :(得分:0)

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