7

MongoDb 有类似 MySql 的东西SELECT SLEEP(5);吗?

我可以看到一些会暂停整个服务器的内部睡眠功能,但我只需要暂停当前查询。

免责声明:仅用于测试目的

4

4 回答 4

8

您可以使用$where 运算符来调用 sleep()。这应该适用于任何语言或 ORM/ODM。例如,在 Mongoid 中,您可以这样做:

Model.where( :$where => "sleep(100) || true" ).count

调整集合中文档数量的睡眠值(它将延迟每个文档)。这将对数据库服务器造成相当可怕的事情,因此仅将其用于测试,并且永远不会(永远!)在生产服务器上。

于 2013-05-31T00:59:03.837 回答
3

您可以按照code_monkey_steve$where所说的那样使用运算符,但请确保使用mongo version >= 2.4。在该版本之前,无法在同一台服务器上并行运行 javascript。该命令是 javascript,因此它显然会阻止您可能进行的其他 javascript 查询。sleep

于 2013-09-15T19:40:35.110 回答
1

从 mongo Shell 你可以运行:

db.collection_name.find( { $where: function() { return sleep(100) || true }}).pretty();

测试和工作。

于 2021-05-17T07:24:11.770 回答
0

mongoshell 中,您可以执行睡眠(ms),例如在运行查询之前睡眠 5 秒:

> sleep(5000); db.collection.find(..);

这不会暂停当前查询,但会在继续执行下一条语句之前在该连接上暂停执行特定的毫秒数(相当于select sleep(5)MySQL 中的 a )。

于 2012-10-16T07:45:21.617 回答