2013-10-18 139 views
2

新版本的MongoDB允許全文搜索。這部分運行正常,我:全文搜索MongoDB/Mongoengine

db.collection.runCommand('text',{search:<keyword>}) 

但是,我不知道,這是有可能通過Python的mongoengine運行它。有沒有人知道是否有辦法使用mongoengine或解決方法運行「runCommand」?

(我使用mongoengine我的項目,我討厭不得不放棄它pymongo,因爲它可能意味着重新編寫了很多東西。)

謝謝!

回答

3

您可以通過直接例如使用pymongo使用MongoEngine:

class MyDoc(Document): 
    pass 

coll = MyDoc._get_collection() 
coll.database.command(
    "text", 
    coll.name, 
    search="alice", 
    project={"name": 1, "_id": 0}, 
    limit=10) 
+0

很好的解決方法。所以你說的是,直接使用Mongoengine訪問'runco​​mmand'命令實際上是不可能的,唯一的方法就是在那裏嵌入pymongo? – cenna75

+0

做了這項工作? – Nithin

+0

那麼上面的例子是直接使用MongoEngine,但你是正確的MongoEngine使用下面的pymongo和搜索你需要下降到pymongo。 – Ross

0

Pymongo爲此使用了keyord參數。請參閱documentation
在你的情況下db.command('text', 'colection_name', seach='keyword')

+0

我的觀點實際上是避免使用pymongo因爲我一直在mongoengine去。我正在尋找你的答案相當於mongoengine。 – cenna75