我有一个后台进程,从 MongoDB 收集所有用户,并对他们的帐户进行某些检查和处理;这种情况每天都会在午夜发生。我的问题是:
这样做是否是一个好的做法(就性能而言):
db.users.find()
检索所有用户,否则这可能会减慢数据库速度,建议 遵循其他一些做法吗?
- 在主节点上执行此操作安全吗?
PS 这种情况每天都会发生在接近 10 万用户的用户身上
最佳答案
MongoDb不是单线程数据库,你的操作是在线程中运行的。
需要注意的是设置查找操作的超时时间。
例如。
db.users.find(timeout=false)
否则,一段时间后你会得到过期游标异常
还有一种方法可以避免长时间光标,每次查询一个文档,然后通过
查询下一个文档db.users.findOne({_id: {$gt: old_id}})
关于javascript - Mongo : Is it a good practice to do collection. find() 返回主节点上的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33648999/