使用--auth

时间:2016-02-16 10:58:29

标签: python mongodb cursor pymongo

python 2.7

pymongo 2.8

mongodb 3.0.2

    start = time.time()
    dynamic_strategies = self.mongo.strategy.find({'enabled': 1, '$or': [{'os': os}, {'os': 'all'}]})
    print 'time used 1: ', str(time.time() - start)
    for dynamic_strategy in dynamic_strategies:
        print 'time used 2: ', str(time.time() - start)

self.mongo类似于pymongo.MongoClient(uri)[dbname]

输出:

时间使用1:0.000109910964966

使用时间2:0.0460259914398

或:

时间使用1:9.3936920166e-05

使用时间2:0.0606229305267

奇怪的是因为光标中只有一行数据,甚至我把代码更改为:

    start = time.time()
    dynamic_strategies = self.mongo.strategy.find({'enabled': 1, '$or': [{'os': os}, {'os': 'all'}]})
    print 'time used 1: ', str(time.time() - start)
    strategy = dynamic_strategies[0]
    print 'time used 3: ', str(time.time() - start)

OUTPUT与以前相同。

我已经做了一些其他的经历并得出结论: 在调用游标对象dynamic_strategies的任何方法时,我将首先花费大约50ms,我不知道为什么。有人可以告诉我为什么吗? 提前谢谢。

更新:mongodb服务器是本地服务器,因此不一定是网络成本。

UPDATE 2 :我发现只有当我使用命令mongod --dbpath mongodb --auth &启动mongo并使用用户名/密码连接时,才会发生上述结果。如果没有授权步骤,它就像我预期的那样快。

0 个答案:

没有答案