2017-09-08 47 views
1

我正在寻找一种方法来创建使用pymongo的mongodb 3.4+视图。在蒙戈命令如下所示:如何使用pymongo创建mongo视图?

db.getCollection('parsed_tests').aggregate([{ 
$lookup: { 
     from: "raw_tests", 
     localField: "repository_path", 
     foreignField: "repository_path", 
     as: "raw_data" 
    } 
}]) 

我想这样做在Python中有一个初始化脚本在一块。有没有人设法做到这一点?

+0

你想用你传递给'.aggregate()'的管道创建一个视图吗? – styvane

+0

是的,这是正确的 – niedakh

回答

1

PyMongo不提供Database方法来创建视图。但是,您可以运行create命令以使用command方法创建视图。如果事实createView只是create命令的包装。

db.command({ 
    "create": "parsed_tests_view", 
    "viewOn": "parsed_tests", 
    "pipeline": pipeline 
}) 
0

由于sstyvane说,你需要给出一个明确的数据库命令。不幸的是,他们的语法错了。

这为我工作:或

db.command('create', 'parsed_and_raw_tests', viewOn='parsed_tests', pipeline=my_pipeline)

另外,如果你已经有了一个蒙戈实例,从3.2版本升级前,你会need to set the feature compatibility version to 3.4之前,你可以创建一个视图。