find()
возвращает курсор, который необходимо перебрать, чтобы получить результаты; Вы не можете просто напечатать результат, как вы нашли. Вы можете использовать find_one()
(вернет только одну запись); использовать list(query)
для преобразования в список или перебирать курсор с помощью for
l oop.
В приведенном ниже примере показан каждый метод.
Кстати, ваше поле $primaryTitle
в запросе поиска не будет работать; вам скорее всего понадобится primaryTitle
без $
import pymongo
import re
db = pymongo.MongoClient()['mydatabase']
db.IllegalCollect.insert_one({'primaryTitle': 'Last Friday Night, Yeah we maxed our credit cards'})
db.IllegalCollect.insert_one({'primaryTitle': 'And got kicked out of the bar, So we hit the boulevard'})
rgx = re.compile('.*Friday Night.*', re.IGNORECASE) # compile the regex
query = db.IllegalCollect.find_one({'primaryTitle': rgx})
print (query)
query = db.IllegalCollect.find({'primaryTitle': rgx})
print (list(query))
query = db.IllegalCollect.find({'primaryTitle': rgx})
for item in query:
print (item)