Python mongoengine map#u将输出减少到一个新集合';不存在
我是MongoDB和Mongoengine的初学者,我正在尝试使用Django的map_reduce功能 我正在使用以下代码对我的集合执行map reduce作业,并将结果保存到新集合:Python mongoengine map#u将输出减少到一个新集合';不存在,python,django,mongodb,mapreduce,mongoengine,Python,Django,Mongodb,Mapreduce,Mongoengine,我是MongoDB和Mongoengine的初学者,我正在尝试使用Django的map_reduce功能 我正在使用以下代码对我的集合执行map reduce作业,并将结果保存到新集合: from mongengine import Document class MyClass(Document): meta = {"db_alias": "mydatabase"} ... map_f = "function() { emit(this.foo, this.bar); }" red
from mongengine import Document
class MyClass(Document):
meta = {"db_alias": "mydatabase"}
...
map_f = "function() { emit(this.foo, this.bar); }"
reduce_f = "function(key, values) { return values[0]; }"
output_collection_name = "mynewcollection"
result = MyClass.objects.map_reduce(map_f, reduce_f, output_collection_name)
first_mapreduce_doc = result.next() # exception thrown
但是,这会引发“ns不存在”异常
据我所知,使用这种语法,数据库名称应该与存储“MyClass”文档的位置(存在)相同,并且应该通过此调用创建集合“mycollection”。那么到底什么是“不存在”
我做错什么了吗?我应该在打这个电话之前手动创建空集合吗
当我使用:
output_collection_name = "inline"
它工作得非常好
提前谢谢
- Python版本:2.7
- Django版本:1.7.1
- MongoDB版本:2.6.7
- MongoEngine版本:0.8.7
create\u collection
函数,也没有运行命令的函数。您必须访问mongoengine下面的PyMongo层才能从Python创建集合。