我有一个后台进程,收集MongoDB中的所有用户,并对其帐户进行某些检查和处理;这种情况每天午夜发生。我的问题是:
这样做是好的(就性能而言):
db.users.find()
检索所有用户,否则这可能会降低数据库的速度,并且建议使用 遵循其他一些做法?
PS这种情况每天发生在接近100K用户的许多用户身上
答案 0 :(得分:2)
MongoDb不是单线程数据库,您的操作是在线程中运行的。
您需要注意的是设置超时以查找操作。
例如
db.users.find(timeout=false)
否则,您将在一段时间后获得过期的游标异常
还有另一种方法可以避免长时间光标,每次查询一个文档,然后通过
查询下一个文档db.users.findOne({_id: {$gt: old_id}})