19

我收到此错误:

TypeError:'Cursor' 类型的对象没有 len()

当我尝试执行时:

reply = db['test'].find({"date":{"$gt":date_query}} ,{"date":1,"route_id":1,"loc":1,"_id":0})

length = len(reply)
4

3 回答 3

30

pymongo游标有一个方法count()可以返回您要查找的内容:

reply = db['test'].find(
  {"date":{"$gt":date_query}},
  {"date":1,"route_id":1,"loc":1,"_id":0}
)

length = reply.count()
于 2013-04-24T23:52:53.440 回答
5

是的,伯爵会为您完成这项工作。

length = reply.count() 

或者

length = reply.count(with_limit_and_skip=False)

不得不忍受很多因为长度=计数(回复)也没有工作。由于我还不允许发表评论,所以想留下这个答案。希望这将有助于某人节省一些时间。

于 2016-12-20T11:29:50.530 回答
3

开始Mongo 4.0.3/ PyMongo 3.7.0,您可以替代地使用count_documents而不是counta cursor

db.collection.count_documents({ "a": 2 })
# where { "a": 2 } is whatever filtering query

db.collection.count_documents是现已弃用的db.collection.count.

于 2018-10-26T08:53:52.353 回答