Mongodb pymongo光标需要很长时间才能找到

Mongodb pymongo光标需要很长时间才能找到,mongodb,python-2.7,pymongo-3.x,Mongodb,Python 2.7,Pymongo 3.x,Pymongo光标耗时约2秒,请建议优化以下查询的方法 查询事实 Records in MongoDB : 120,000 Indexed Key: emp_id MongoDB Server: 3.2.11 PyMongo : 3.5 Python : 2.7 光标 要从数据库中查找文档,请使用索引字段作为筛选器,并仅投影所需字段,这需要约2秒的时间 我正在寻找优化此查询的方法,以便它可以更快 db = client["db_name"] user_data = d

Pymongo光标耗时约2秒,请建议优化以下查询的方法

查询事实

Records in MongoDB : 120,000
Indexed Key: emp_id
MongoDB Server: 3.2.11
PyMongo       : 3.5
Python        : 2.7
光标

要从数据库中查找文档,请使用索引字段作为筛选器,并仅投影所需字段,这需要约2秒的时间

我正在寻找优化此查询的方法,以便它可以更快

db = client["db_name"]
user_data = db.collection_name.find_one(
    {"emp_id": 1234}, {'nameFirst': 1, 'nameLast': 1, 'emp_id': 1, }
)
运行时间:1.829226017


为了提供信息,请使用find()引用相同的查询

查询光标的运行时间:0.00215888023376


获取用户数据所用时间:1.79128599167

切换到正确的数据中心后问题已解决。现在,DB查询的速度非常快,不到0.10秒。

从您的查询中,它似乎可以相当快地返回数据。因此,您的计算可能包括创建到数据库的初始连接的开销。您的数据库和运行代码的计算机/服务器在哪里?@justcompile我最终切换了数据中心,并能够运行得更快。现在大约是0.10秒。
def query_cursor():
    db = client["db_name"]
    cursor = db.collection_name.find(
        {"emp_id": 1234}, {'nameFirst': 1, 'nameLast': 1, 'emp_id': 1, }
    ).limit(1)

    return cursor

def get_user_data():
    cursor = query_user_data()
    user_data = None
    for document in cursor:
        user_data = document
    return user_data

print(get_user_data())