Когда я пытаюсь распечатать (запрос), я получаю результат как - PullRequest
1 голос
/ 18 февраля 2020

Когда я пытаюсь print(query), я получаю результат как <pymongo.cursor.Cursor object at 0x00000273CCF21D90>, тогда как я хочу, чтобы весь документ, содержащий primaryTitle, имел "Friday Night". Пожалуйста, помогите.

rgx = re.compile('.*Friday Night.*', re.IGNORECASE)  # compile the regex

query= db.IllegalCollect.find({"$primaryTitle": rgx})

1 Ответ

0 голосов
/ 18 февраля 2020

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)
...