web-dev-qa-db-ja.com

TypeError:タイプ 'Cursor'のオブジェクトにlen()がありません

このエラーが発生します:

TypeError:タイプ 'Cursor'のオブジェクトにlen()がありません

実行しようとすると:

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

length = len(reply)
15
maniac_user

編集:

タグでmongodbを参照していることに気づきました。質問の本文に使用しているデータベースが指定されていなかったため、混乱しました。

カーソルには、探しているものを返すメソッド 'count()'があります。

PyMongoカーソルドキュメント

22
cacahootie

はい、カウントはあなたのために仕事をします。

length = reply.count() 

または

length = reply.count(with_limit_and_skip=False)

coz length = count(reply)もうまくいきませんでした。まだコメントは許されていないので、この答えを残そうと思いました。これが誰かが時間を節約するのに役立つことを願っています。

4
Wenuka

開始Mongo 4.0.3/PyMongo 3.7.0、代わりに count_documentscountcursorの代わりに:

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

db.collection.count_documentsは、現在非推奨になっている db.collection.count

1
Xavier Guihot