4

我对包括解释在内的请求有疑问。例如,以下请求效果很好:

pp.pprint(col.find({"cuisine":"Italian"}, {"name" : 1, "address.zipcode" :   1, "address.coord" : 1}).explain())

解释方法的项目列表打印得很好。

但是,当我只需要 explain() 方法中的 executionStats 项时,请求如下:

pp.pprint(col.find({"cuisine":"Italian"}, {"name" : 1, "address.zipcode" : 1, "address.coord" : 1}).explain("executionStats"))

我有以下错误:

TypeError: explain() takes 1 positional argument but 2 were given

有谁知道它是关于什么以及如何解决这个问题?

4

2 回答 2

5
col.find({"cuisine":"Italian"}, {"name" : 1, "address.zipcode" :   1, "address.coord" : 1}).explain()['executionStats']

在 pymongo explain() 中是一个 dic,所以你需要添加键来显示“executionStats”

于 2016-12-18T15:42:44.960 回答
1

您不能通过“executionStats”在 pymongo 中进行解释。您必须让 pymongo 的解释包装器获取所有解释输出并解析出您需要的内容。

pp.pprint(col.find({"cuisine":"Italian"}, {"name" : 1, "address.zipcode" : 1, "address.coord" : 1}).explain())

https://api.mongodb.org/python/current/api/pymongo/cursor.html?highlight=explain#pymongo.cursor.Cursor.explain

没有论据。

于 2016-02-08T15:54:56.503 回答