2015-12-01 2 views
0

Я пытаюсь простой текстовый поиск с использованием структуры агрегации. Я использую Mongo 3.0.7PyMongo текстовый поиск с использованием агрегации

В базе данных есть поле с именем «текст». Я пытаюсь получить данные из mongo с помощью python. Я использую код ниже. Пожалуйста, поправьте меня, если я ошибаюсь.

db.tweets.create_index({"text":"text"}) 
cursor=db.tweets.aggregate(([{"match": {"text": {"search": "cake"}}}])) 

for document in cursor: 
    print(document) 

Получаем, что ошибка: planner возвратила ошибку: нужен ровно один текстовый индекс для текстового запроса.

Спасибо!

ответ

1

Решенный его, я не знал о концепции

BSON предназначен для проходится легко. Это жизненно важное свойство в его роли первичного представления данных для MongoDB.

Мой выше код генерировался в формате BSON, который не находится в человекообразном формате. Ошибка, которую я сделал, заключалась в том, чтобы отобразить ее с помощью простой печати.

Решение: Мне нужно преобразовать объект BSON в JSON, а затем попытаться пройти через список.

from bson import json_util 

json_docs = [json.dumps(document , default=json_util.default) for document in cursor ] 

for jsondump in json_docs: 
    x=json.loads(jsondump) 
    print(x) 
Смежные вопросы