2015-12-01 49 views
0

我想使用聚合框架的簡單文本搜索。我正在使用Mongo 3.0.7使用聚合PyMongo文本搜索

數據庫有一個名爲'text'的字段。我試圖從python中檢索mongo的數據。我使用下面的代碼。如果我錯了,請糾正我。

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

for document in cursor: 
    print(document) 

我得到的錯誤:策劃者返回錯誤:究竟需要爲$文本查詢一個文本索引。

謝謝!

回答

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)