The upcoming MongoDB 2.4 supports full-text search.
We do this in the mongo shell with a command, such as
db.players.runCommand(\"text\", {
\"search\
Figured it out: pymongo uses keyword arguments for the additional command arguments:
db.command("text", "players",
search="alice",
project={"name": 1, "_id": 0},
limit=10)
The reason for the odd error message "no such cmd: project" is that Python's dictionaries are unordered, and the project
key happened to be first when passed to mongo.
An alternative solution is to use OrderedDict. Assuming collection and query are given as variables while additional parameters such as limit, projection and others given in the dict 'params':
params_ord = OrderedDict()
params_ord['text'] = collection
params_ord['search'] = query
for k,v in params.iteritems():
params_ord[k] = v
db.command(params_ord)