MongoDB 语法错误:缺少语句前的分号 @(shell)
MongoDB 语法错误:缺少语句前的分号 @(shell)
当我尝试调用集合的方法时,为什么会出现错误SyntaxError: missing ; before statement @(shell)
?谢谢。
$ mongo
MongoDB shell 版本:3.2.8
正在连接到:test
欢迎使用 MongoDB shell。
键入 "help" 以获取交互式帮助。
要获取更全面的文档,请访问
http://docs.mongodb.org/
有问题?请尝试支持组
http://groups.google.com/group/mongodb-user
服务器启动警告:
2016-08-04T11:58:21.138-0400 I CONTROL [initandlisten]
2016-08-04T11:58:21.138-0400 I CONTROL [initandlisten] ** 警告:/sys/kernel/mm/transparent_hugepage/enabled 为 'always'。
2016-08-04T11:58:21.138-0400 I CONTROL [initandlisten] ** 我们建议将其设置为 'never'
2016-08-04T11:58:21.138-0400 I CONTROL [initandlisten]
2016-08-04T11:58:21.139-0400 I CONTROL [initandlisten] ** 警告:/sys/kernel/mm/transparent_hugepage/defrag 为 'always'。
2016-08-04T11:58:21.139-0400 I CONTROL [initandlisten] ** 我们建议将其设置为 'never'
2016-08-04T11:58:21.139-0400 I CONTROL [initandlisten]
> show dbs
mydb 0.000GB
local 0.000GB
> use mydb
已切换到数据库 mydb
> show collections
201607012
> db
mydb
> mydb.201607012.find()
2016-08-04T12:10:23.826-0400 E QUERY [thread1] SyntaxError: missing ; before statement @(shell):1:4
> db.201607012.find()
2016-08-04T12:10:29.000-0400 E QUERY [thread1] SyntaxError: missing ; before statement @(shell):1:2
> db.201607012.find()
2016-08-04T12:11:09.115-0400 E QUERY [thread1] SyntaxError: missing ; before statement @(shell):1:2
> db.201607012.stats()
2016-08-04T12:13:06.022-0400 E QUERY [thread1] SyntaxError: missing ; before statement @(shell):1:2
在使用MongoDB的shell时,可能会遇到一个错误:“MongoDB SyntaxError: missing ; before statement @(shell)”。这个错误的出现有其原因,并且可以通过一些解决方法来解决。
造成这个错误的原因是,在mongoshell中使用quit()命令退出shell后,尝试在常规命令提示符中运行命令。这种情况下,由于命令提示符中不支持mongoshell的语法,就会出现语法错误。
要解决这个问题,我们可以按照以下步骤操作:
1. 在mongoshell中使用quit()命令退出shell。
2. 打开常规的命令提示符(例如,Windows的命令提示符或Mac的终端)。
3. 在命令提示符中输入所需的MongoDB命令,确保命令的语法正确。
4. 执行命令,即可正常运行。
以下是一段示例代码,展示如何解决这个问题:
> quit() // 退出mongoshell $ mongo --version // 检查MongoDB版本,确保安装正确 MongoDB shell version v4.4.6 // 输出MongoDB版本信息 $ mongo // 打开常规命令提示符 > db.users.find() // 输入MongoDB命令 { "_id" : ObjectId("60c8f8e2e6c8286b2c3e5a8c"), "name" : "John" } // 输出查询结果 >
通过按照上述步骤,我们可以顺利地在常规命令提示符中执行MongoDB命令,避免了“MongoDB SyntaxError: missing ; before statement @(shell)”错误的出现。
总结起来,当我们在mongoshell中使用quit()命令退出shell后,在常规命令提示符中运行MongoDB命令时可能会出现语法错误。为了解决这个问题,我们需要在常规命令提示符中执行MongoDB命令,并确保命令的语法正确。通过遵循上述步骤,我们可以成功地避免这个错误的出现,并正常地运行MongoDB命令。
在使用MongoDB的过程中,有时候会遇到一个错误提示:“MongoDB SyntaxError: missing ; before statement @(shell)”。下面我们来分析一下这个问题出现的原因以及解决方法。
根据MongoDB的文档(https://docs.mongodb.com/manual/reference/limits/#naming-restrictions),集合的名称应该以下划线或字母字符开头。如果集合名称不符合这个规定,就会出现上述的语法错误。
为了解决这个问题,我们可以参考以下两个链接(https://stackoverflow.com/questions/9790049 和 https://stackoverflow.com/questions/7111830),来删除或访问错误命名的集合。
问题:MongoDB SyntaxError: missing ; before statement @(shell)
原因:在运行mongoexport命令时,缺少分号分隔符,导致语法错误。
解决方法:在命令中添加分号分隔符。
具体步骤如下:
1. 打开一个新的命令提示符窗口。
2. 以管理员身份运行命令提示符窗口。
3. 输入mongoexport命令,确保在命令的末尾添加分号分隔符。
示例代码:
mongoexport --db dbname --collection collectionname --out outputfile.json;
以上操作将解决MongoDB SyntaxError: missing ; before statement @(shell)的问题。