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

时间:2013-04-24 23:41:41

标签: python mongodb cursor pymongo

我收到此错误:

  

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

当我尝试执行时:

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

length = len(reply)

3 个答案:

答案 0 :(得分:22)

编辑:

刚刚注意到你在标签中引用了mongodb。我很困惑,因为您的问题正文未指定您正在使用的数据库。

光标有一个方法'count()',它将返回你要找的东西。

PyMongo Cursor Docs

答案 1 :(得分:4)

是的,伯爵会为你做的工作。

length = reply.count() 

length = reply.count(with_limit_and_skip=False)

不得不忍受很多因为长度=计数(回复)也没有用。由于我还没有被评论,所以想留下这个答案。希望这能帮助别人节省一些时间。

答案 2 :(得分:1)

Mongo 4.0.3 / PyMongo 3.7.0开始,您可以在count上使用count_documents代替cursor

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

db.collection.count_documents是现已弃用的db.collection.count的替代方法。