В версии 3.0 можно сократить до:
MyHandler myDelegate = ()=>Console.WriteLine("I did it!");
MyEvent += myDelegate;
...
MyEvent -= myDelegate;
Если вы используете пимонго версии 3.7.0 или выше, см. Этот ответ .
Если вы хотите, чтобы results_count
игнорировал ваши limit()
:
results = db.datasets.find({"test_set":"abc"}).sort("abc",pymongo.DESCENDING).skip((page-1)*num).limit(num)
results_count = results.count()
for post in results:
Если вы хотите, чтобы results_count
был ограничен вашим limit()
, набором applySkipLimit
. ] до True
:
results = db.datasets.find({"test_set":"abc"}).sort("abc",pymongo.DESCENDING).skip((page-1)*num).limit(num)
results_count = results.count(True)
for post in results:
Начиная с версии 3.7.0 и выше , pymongo устарела . Вместо этого используйте Collection.count_documents
. Запуск cursor.count
или collection.count
приведет к появлению следующего предупреждающего сообщения:
DeprecationWarning: count is deprecated. Use Collection.count_documents instead.
Для использования count_documents
код можно настроить следующим образом
import pymongo
db = pymongo.MongoClient()
col = db[DATABASE][COLLECTION]
filter = {"test_set":"abc"}
sort = [("abc",pymongo.DESCENDING)]
skip = 10
limit = 10
doc_count = col.count_documents(filter, skip=skip)
results = col.find(filter).sort(sort).skip(skip).limit(limit)
for doc in result:
//Process Document
Примечание: Метод count_documents
работает относительно медленно по сравнению с методом count
. Для оптимизации вы можете использовать collection.estimated_document_count
. Этот метод возвращает приблизительное количество документов (как следует из названия) на основе метаданных коллекции.