MongoDb有类似MySql的SELECT SLEEP(5);
吗?
我可以看到一些暂停整个服务器的内部睡眠功能,但我只需暂停当前查询。
免责声明:仅用于测试目的
答案 0 :(得分:6)
您可以使用$where operator来调用sleep()。这应该适用于任何语言或ORM / ODM。例如,在Mongoid中你可以这样做:
Model.where( :$where => "sleep(100) || true" ).count
调整集合中文档数量的睡眠值(每个文档都会延迟)。这会给数据库服务器带来相当可怕的事情,因此只能用于测试,而且永远不会(永远!)在生产服务器上。
答案 1 :(得分:3)
您可以code_monkey_steve说明使用$where
运算符,但请务必使用mongo version >= 2.4。在该版本之前,没有javascript可以在同一台服务器上并行运行。 sleep
命令是javascript,因此它显然会阻止您可能正在进行的其他JavaScript查询。
答案 2 :(得分:1)
你可以从 mongo Shell 运行:
db.collection_name.find( { $where: function() { return sleep(100) || true }}).pretty();
经过测试和工作。
答案 3 :(得分:0)
从mongo
shell中你可以做睡眠(ms),例如在运行查询之前休眠5秒:
> sleep(5000); db.collection.find(..);
这不会暂停当前查询,但会在继续下一个语句(相当于MySQL中的select sleep(5)
)之前暂停在该连接上执行特定的毫秒数。