我需要在MongoDB服务器上运行以下查询:
QUERY = {
"$and" : [
{"x" : {'$gt' : 1.0}},
{"y" : {'$gt' : 0.1}},
{"$where" : 'this.s1.length < this.s2.length+3'}
]
}
此查询非常慢,因为服务器需要在集合中的每个文档上执行Javascript表达式。
我有什么方法可以优化它吗?
我考虑过使用$size
运算符,但我不确定它是否适用于字符串,我甚至不太确定如何在一对字符串上比较它的输出(就像是案例)。
以下是我脚本的其余部分,如果需要:
from pymongo import MongoClient
USERNAME = ...
PASSWORD = ...
SERVER_NAME = ...
DATABASE_NAME = ...
COLLECTION_NAME = ...
uri = 'mongodb://{}:{}@{}/{}'.format(USERNAME,PASSWORD,SERVER_NAME,DATABASE_NAME)
mongoClient = MongoClient(uri)
collection = mongoClient[DATABASE_NAME][COLLECTION_NAME]
cursor = collection.find(QUERY)
print cursor.count()
pymongo
版本为3.4。
谢谢:)