NotImplementedError: Database objects do not implement truth value testing or bool(). Please compare with None instead: database is not None
Apparently the API changed in the MongoDB client library in version 4. After getting a database or collection object (ex db_obj) from the MongoClient(...)
you can no longer use if db_obj:
and must use if db_obj is not None:
.
So this:
mongo_client = MongoClient(...)
# get a database object
db_obj = mongo_client['mydb']
if db_obj:
# get a collection
collection_obj = db_obj['my_collection']
if collection_obj:
# do a query
# ...
Must change to:
mongo_client = MongoClient(...)
# get a database object
db_obj = mongo_client['mydb']
if db_obj is not None: <-- here
# get a collection
collection_obj = db_obj['my_collection']
if collection_obj is not None: <-- here
# do a query
# ...
I had this same issue just a day after you did. It seems the old pattern still works on testing result objects from a query or insert, but you might want to update those as well in case it is deprecated in the future.