我得到了如下错误:追踪(最近一次通话):
pymongo.errors.OperationFailure:命令SON([('mapreduce',u'weets'),('map',Code('function(){emit(this.via,1);}',{})),('reduce',Code('函数(键,值){var res=0;\n个值.forEach(函数(v){res+=1})\n return{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)
在命名空间Corpus上$cmd失败:ns不存在
这意味着您在语料库中没有名为"tweets"或"via_count"的集合。
与mongodb中的原始查询不同,map_reduce函数在不存在的情况下不会生成新的集合。
即使数据库不存在,也会丢弃相同的错误