Mongo:使用collection.find()返回主节点上的所有项目是一种好习惯

时间:2015-11-11 10:51:00

标签: javascript python mongodb

我有一个后台进程,收集MongoDB中的所有用户,并对其帐户进行某些检查和处理;这种情况每天午夜发生。我的问题是:

  1. 这样做是好的(就性能而言):

    db.users.find()
    

    检索所有用户,否则这可能会降低数据库的速度,并且建议使用 遵循其他一些做法?

  2. 在主节点上执行它是否安全?
  3. PS这种情况每天发生在接近100K用户的许多用户身上

1 个答案:

答案 0 :(得分:2)

MongoDb不是单线程数据库,您的操作是在线程中运行的。

您需要注意的是设置超时以查找操作。

例如

db.users.find(timeout=false)

否则,您将在一段时间后获得过期的游标异常

还有另一种方法可以避免长时间光标,每次查询一个文档,然后通过

查询下一个文档
db.users.findOne({_id: {$gt: old_id}})