mongoimport syntaxerror意外标识符

时间:2015-07-09 10:16:43

标签: json mongodb

的MongoDB入门教程之后
https://docs.mongodb.org/getting-started/node/import-data/

尝试使用给定代码

导入示例数据库
mongoimport --db test --collection restaurants --drop --file primer-dataset.json

我得到了

2015-07-09T21:52:17.396+1200 E QUERY    SyntaxError: Unexpected identifier

我在bash shell中运行它,mongod在另一个shell中运行。 我曾尝试多次复制数据以防json文件出现问题,甚至用非常简单的json文件替换数据但问题仍然存在。 请有人帮帮忙。

8 个答案:

答案 0 :(得分:1)

你的命令是正确的。 从终端使用它而不是在mongo shell中。但是,我会对你的mongoimport进行一些小调整,如下所示: 在终端上:

mongoimport --db test --collection restaurants --drop --file /<complete-path>/primer-dataset.json

因此,如果文件位于/myimports文件夹中,那么它将是:

mongoimport --db test --collection restaurants --drop --file /myimports/primer-dataset.json

答案 1 :(得分:1)

遇到同样的问题,只要您在命令中更改了“下载”文件夹的大小写(Windows不区分大小写,但Linux就是这样),您列出的在线文档中的说明就会很好。如果你的像我的,你必须改变

mongoimport --db test --collection restaurants --drop --file ~/downloads/primer-dataset.json

mongoimport --db test --collection restaurants --drop --file ~/Downloads/primer-dataset.json

同样如anish所提到的,你必须在终端(不在mongo shell中)运行它,mongoimport连接到端口27017上运行在localhost上的mongod实例

答案 2 :(得分:1)

我遇到了同样的问题。虽然,上述解决方案都没有帮助。在网上搜索之后,我终于找到了解决方案。

就我而言,问题是 bin 目录中没有 mongoimport.exe 文件。

因此,请按照以下步骤操作:

  1. 下载 MongoDB 数据库工具 https://www.mongodb.com/try/download/database-tools
  2. 将所有文件从 bin 目录复制到以下目录 - MongoDB\Server\4.4\bin。

现在,mongoimport 必须工作了。

答案 3 :(得分:0)

首先你应该quit() mongo.exe。

第二次输入mongoimport --db test --collection restaurants --drop --file D:/MongoDB/data/dataset.json

答案 4 :(得分:0)

quit() mongo.exe,因为它不应在mongo终端中编写

类型

。\ mongoimport --db测试--collection restaurant --drop --file primer-dataset.json

这应该有效!

答案 5 :(得分:0)

您不是从mongo shell运行mongoimport,而是直接从OS终端运行

答案 6 :(得分:0)

这是我尝试过的,并且效果很好!

您可以做的就是使用任何编辑器将json对象转换为数组,然后使用 uri末尾的--jsonArray和--legacy。会正常工作。

db.objects.update({'items.blocks.id': id_here}, {'$set': {'items.$[].blocks.$.txt': 'hi'}})

记住在输入密码之前将json对象转换为数组

答案 7 :(得分:0)

  1. 下载 mongotools,然后将文件复制到您的 /bin 文件夹。
  2. 确保您在 windows 中有一个正确的 PATH 到 /bin 文件夹并且 mongo 正在工作。
  3. 打开 CMD 并粘贴:mongoimport --db yourDbName --collection nameOfCollection ^ --username <user> --password <password> ^ --drop --file filePath
  4. 使用 MONGOSHELL 进行测试:db.nameOfCollection.find()