首页 > 解决方案 > 中止 mongo shell 命令(作为无限循环)而不结束 shell 本身

问题描述

我在 MongoDB shell(版本 4.2,作为参考)中运行以下命令:

while(true) { db.c.update({_id:1}, {$inc: {n: 1}}) }

我想打破 while 循环,但不结束 MongoDB shell。如果我使用Ctrl+C循环结束,还有mongo过程(就像我已经完成exit)。

查看我发现为“中止”的mongo shell 文档Ctrl+G,但它不起作用(它似乎什么也没做)。

有可能做我正在尝试的事情吗?目的是Ctrl+G什么?

谢谢!

标签: mongodbmongodb-shell

解决方案


不可能。您将中止 MongoDB 操作与执行 JS 混淆了。

Ctrl + G中止单个CRUD 操作,而不是while(true){...}

让我们看看这个例子:

db.collection.find({$where:"this.foo==1"});print("1");db.collection.find({$where:"this.foo==1"});print("2");
> executing...
> Ctrl + G
> 1
> executing...
> Ctrl + G
> 2

推荐阅读