【发布时间】:2017-09-04 16:18:05
【问题描述】:
我需要在 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。
【问题讨论】:
标签: python mongodb python-2.7 mongodb-query