有同样的问题,通过使用'$meta'运算符而不是runCommand来解决问题(pymongo):
# create text index
db.collection.ensure_index([("textField", "text")], name = "Text_search_index")
# query
queryDict = { "$text": { "$search": ""science"}}
# cursor
cursor = db.collection.find(queryDict, {'score': {'$meta': 'textScore'}, "_id":1}).sort([('score', {'$meta': 'textScore'})]).limit(limit_value)
看起来这至少在 pymongo 中仅适用于 2.6 版本
同样在 Mongo shell 中,这相当于:
db.collection.ensureIndex({"textField":"text"})
queryDict = { "$text": { "$search": "science"}}
db.collection.find(queryDict, {'score': {'$meta': 'textScore'}}).sort({'score': {'$met
a': 'textScore'}}).limit(100)