33 lines
914 B
Python
33 lines
914 B
Python
"""
|
|
Helper functions, constants, and types to aid with PyMongo v2.7 - v3.x support.
|
|
"""
|
|
import pymongo
|
|
|
|
_PYMONGO_37 = (3, 7)
|
|
|
|
PYMONGO_VERSION = tuple(pymongo.version_tuple[:2])
|
|
|
|
IS_PYMONGO_GTE_37 = PYMONGO_VERSION >= _PYMONGO_37
|
|
|
|
|
|
def count_documents(collection, filter):
|
|
"""Pymongo>3.7 deprecates count in favour of count_documents"""
|
|
if IS_PYMONGO_GTE_37:
|
|
return collection.count_documents(filter)
|
|
else:
|
|
count = collection.find(filter).count()
|
|
return count
|
|
|
|
|
|
def list_collection_names(db, include_system_collections=False):
|
|
"""Pymongo>3.7 deprecates collection_names in favour of list_collection_names"""
|
|
if IS_PYMONGO_GTE_37:
|
|
collections = db.list_collection_names()
|
|
else:
|
|
collections = db.collection_names()
|
|
|
|
if not include_system_collections:
|
|
collections = [c for c in collections if not c.startswith('system.')]
|
|
|
|
return collections
|