2013-10-18 106 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