在
的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文件替换数据但问题仍然存在。 请有人帮帮忙。
答案 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 文件。
因此,请按照以下步骤操作:
现在,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)
mongoimport --db yourDbName --collection nameOfCollection ^ --username <user> --password <password> ^ --drop --file filePath
db.nameOfCollection.find()