即将推出的MongoDB 2.4支持 全文检索。
我们在mongo shell中使用命令执行此操作,例如
db.players.runCommand("text", {
"search": "alice",
"project": {"name": 1, "_id": 0},
"limit": 10})
现在把它移植到pymongo时,我们必须处理这个事实 runCommand
没有在pymongo上定义 Collection
类。我弄清楚了什么 真实 命令是,所以这在shell中工作:
db.runCommand({
"text": "players",
"search": "alice",
"project": {"name": 1, "_id": 0},
"limit": 10})
哪个有效。但这并没有告诉我如何在pymongo中使用它。我试过了:
db.command({
"text":"players",
"pipeline": [
("search","alice"), ("project",{"name":1,"_id":0}), ("limit",10)
]})
哪个没用(它说“没有指定搜索”)。我也尝试过:
db.command({
"text": "players",
"search": "alice",
"project": {"name": 1, "_id": 0},
"limit":10})
这当然失败了:“没有这样的cmd:项目”。
如果我只使用,我可以让事情发挥作用 search
和 limit
, 例如
db.command({
"text": "players",
"search": "alice",
"limit": 10})
但我想用 filter
和 project
与pymongo。有没有人使用项目和过滤器进行全文搜索?
旁白:也许有一种很好的方法可以从shell命令推断出pymongo命令的形状?